设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8153|回复: 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 $ I6 [' X/ u. n3 x9 h
应该不行吧,这是系统自带的语言,和C不一样
# a3 l" ]% s4 C# P2 t
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 " O7 \9 `! k- c4 P% U. s
可以调用C++。

" C: L$ L2 m! W: }/ }请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ; ^# r$ d1 t0 O8 P. o( `8 g
  2.         r:real; file:string;
    7 C/ w3 q% X, L7 ~1 C
  3. do
    * S2 t( E/ ]0 b1 \% S" v$ `8 G
  4.         openConsole;
    9 {1 V+ }0 `# z/ k. o

  5. 0 s; ]( p- g( _
  6.         /*
    / w# Q: ?; K# D6 V7 H: L
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",  C9 m+ W" _1 G  Q, W% D
  8.                                    when is64BitApplication then 64 else 32,
    8 I0 v! z% S) x/ Q6 ]0 f" I
  9.                                    "bit.dll");  H  V" y7 g, x! r% \) b$ D
  10.                            */
    - g$ y: ^& j) n! Y7 l7 g" ?
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";; S4 k+ ^6 C6 m7 u9 }
  12.         local j := loadLibrary(file);9 @) E# y! l4 X/ A: B3 }

  13. 2 m6 l+ }9 c6 `9 L/ R) d4 R/ t4 X1 b
  14.         if j > 0 then
    : s& r  C* F5 w. i3 N: ~+ P
  15.                 print getLoadedLibrary(j)," is loaded.";
    ' b6 J/ N4 p! G% e8 }. |

  16. % Y! ?9 T! d6 `/ }9 p3 S8 ~
  17.                 r := callLibrary(j, "calcSin", PI/6);! w3 m" `: D; G9 V
  18.                 promptmessage(to_str("sin(PI/6) = ", r));. V* g, {9 h& y+ L. H  m9 a9 ]
  19.                 $ x( k$ }% ^! g
  20.                 local str:string;
    : q$ c6 P- |: x+ d- h
  21.                 str := "I'm OK!";2 q: t/ _# X  @* y
  22.                 str := callLibrary(j,"resetStr",str);
    , q6 ?  R% `; G, R3 J$ o; O, }
  23.                 promptmessage(str);  A! L5 b9 N8 a4 f
  24.                 . V2 c5 f( H+ G# n$ Q+ S* C$ Z
  25.                 callLibrary(j, "listAccess", Tablefile);1 @/ _/ b: b$ K1 r) f  P6 D; C6 F  y
  26.                
    / ]0 D5 A7 t& g4 H% V
  27.                 print "Unloading: ", freeLibrary(j);- ^& s' }7 s) d
  28.         end;
    " @/ `9 M! n5 y) w3 p! l/ `# P8 X
  29. end;1 X5 O/ J6 n4 d, O
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

+ Y+ j, [9 \$ |7 l不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?2 A% \- m$ i$ f
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
  v4 @: }1 l, K& i/ @! z! d  z注意接口参数传递。9 d3 L& {+ D1 j. x* A4 L( X

& w" P# D: y. H  Z$ z; ~7 R" u+ C感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 % l4 X& k6 X7 [& {
不明白你为什么需要调用C++程序,正常是不需要用到的。
/ n% y$ S2 y/ a9 |8 a, @
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 4 y: [+ J3 t4 `! w9 H: d5 D
plant自带的例子里面有教你方法,你好好看看。
1 k. p5 j  Z; I7 H  E0 |1 i5 s
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 07:46 , Processed in 0.017247 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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