设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6812|回复: 11

[求助]

    [复制链接]
发表于 2015-4-15 09:44:16 | 显示全部楼层 |阅读模式
请问可以直接把C++程序导入到emplant中么?急
发表于 2015-4-15 11:15:03 | 显示全部楼层
应该不行吧,这是系统自带的语言,和C不一样
 楼主| 发表于 2015-4-15 13:42:37 | 显示全部楼层
kunny 发表于 2015-4-15 11:15
( @+ O  z, w8 ?8 r% ^应该不行吧,这是系统自带的语言,和C不一样
) H, h8 s4 s. U- `5 N7 R+ T
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 . @; u6 x" s; @  H* o
可以调用C++。
( U% C6 Q5 t; l5 C2 r6 p: A+ o+ c, q
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    6 L# p" a1 \  {4 J
  2.         r:real; file:string;! y5 m# G/ @: P$ {
  3. do
    9 @; z" v% t7 f* I. M+ r
  4.         openConsole;
    8 B; S' d$ t; g2 K0 n- v, J! p! l

  5. : f& E1 L/ [+ D
  6.         /*2 z5 Z! z; q0 C* s5 o( v
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",( `) W2 z/ v8 Y0 J$ y6 v
  8.                                    when is64BitApplication then 64 else 32,
      \  B0 I4 e8 |* K- k* c
  9.                                    "bit.dll");
    - x- ?! N) g) S. G
  10.                            */
    2 B; E  v2 R: r% Q
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";- b. |5 b0 o& D/ L# g) r
  12.         local j := loadLibrary(file);- l. ^  V  _) y: m  m# U

  13. 8 W( p& X% |4 E2 z2 j9 b
  14.         if j > 0 then
    ( U! O, K9 C: z! i, \
  15.                 print getLoadedLibrary(j)," is loaded.";
    & f$ A9 m  I5 C. ^3 a/ k" L. @

  16. ) }9 }/ a, h" y3 z9 H( o) {7 D
  17.                 r := callLibrary(j, "calcSin", PI/6);
    4 ^) O  n, h" z
  18.                 promptmessage(to_str("sin(PI/6) = ", r));% |+ R# v' u' }
  19.                
    1 P0 e( K$ K1 o# P1 G, x/ n
  20.                 local str:string;
    . }  ?6 \$ t- t. L' o8 V
  21.                 str := "I'm OK!";5 }4 {  e) L) U) F# X7 h$ W
  22.                 str := callLibrary(j,"resetStr",str);
    1 R2 \# g7 u/ M3 _1 z$ L; J4 `
  23.                 promptmessage(str);8 \) y; ~$ m' \4 C/ |
  24.                
    + T$ O2 L& T6 W
  25.                 callLibrary(j, "listAccess", Tablefile);6 N2 A) a& D* o
  26.                 ! f+ _$ E" ^9 [& Q2 [, B4 _: D) A
  27.                 print "Unloading: ", freeLibrary(j);
      g0 d. W, I, ]( i* c
  28.         end;
    ! c7 |7 V7 y, c" `4 n
  29. end;
    0 w3 D7 W$ T4 [8 `& W
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

. p  C2 B6 N8 D9 O7 ?0 w$ A不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
7 C0 s4 {$ ^* }
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。. G! v& I$ j7 n
注意接口参数传递。
+ f+ _% y! b, z2 e  U! }6 Y
( t& J) o$ [! m% Q, S9 H感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 : M1 _; u% h6 A; }
不明白你为什么需要调用C++程序,正常是不需要用到的。

( [, E! [: s2 n8 g* O就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 1 h7 j. @) D8 E. @
plant自带的例子里面有教你方法,你好好看看。
2 h* H+ i5 Y8 ~' L8 M  m& ~9 r
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-2-24 08:43 , Processed in 0.016239 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表