设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7686|回复: 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
' a; O* V* T2 H- h应该不行吧,这是系统自带的语言,和C不一样

0 R$ ?+ f7 ~( w% h7 M" B好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
5 J9 c2 b8 s5 n. Q+ g可以调用C++。

* E% W" x+ ^% p5 F2 w请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    + O6 ~  E9 h8 B  |5 L/ c. O: `
  2.         r:real; file:string;8 O. J  V& r4 N$ p# ?# U! I
  3. do- k) T4 h3 u* ^5 ^, a
  4.         openConsole;: V0 g4 o! h0 |+ B/ {

  5. / g1 Y& [$ D# c: ~; @% K
  6.         /*
    $ g& M8 @- N! z" m2 x$ o
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",; c( ~% ?! K# R2 e, m7 N
  8.                                    when is64BitApplication then 64 else 32,
    " A6 s* g. E0 j2 o
  9.                                    "bit.dll");
    : k- H; K1 L8 `
  10.                            */# F6 o: z& a2 ]1 d" P
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";& q, j( F/ U+ ~
  12.         local j := loadLibrary(file);
    8 R/ q. E4 `- M3 n; L, z& r
  13. % p: g5 I' ?$ ^) G
  14.         if j > 0 then
    % y9 b* m- \  `9 H
  15.                 print getLoadedLibrary(j)," is loaded.";
    2 E9 {1 C: I$ Z( G) p+ E- G
  16. ! D8 u) g' E: X- Z( @) ]8 @
  17.                 r := callLibrary(j, "calcSin", PI/6);& [! l& h1 q" h1 Z
  18.                 promptmessage(to_str("sin(PI/6) = ", r));! m3 i9 V5 ]) u5 W4 H! y" C
  19.                
    8 Q+ O& _; y; O+ p& t" }7 d( h
  20.                 local str:string;2 w& ^! m- g) m) B3 t: r' t- ~6 E/ X! _3 [
  21.                 str := "I'm OK!";
    6 T8 m) b& j5 w1 o) h$ ?
  22.                 str := callLibrary(j,"resetStr",str);
    * f* G: G, p. |
  23.                 promptmessage(str);2 N$ r: T3 o4 G" H2 t
  24.                
    1 V0 g1 [- U! O' I+ K* Z
  25.                 callLibrary(j, "listAccess", Tablefile);2 @2 b% U# z' O! O! U% {
  26.                 * B6 k( v" e: O
  27.                 print "Unloading: ", freeLibrary(j);' o# R2 x" U( |, P9 O+ _. _3 u) s5 D
  28.         end;# M2 r+ q2 |7 p% Q/ \3 e
  29. end;0 }8 [  [" R  i, f! _3 B
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

  T+ `+ I% }; n; d4 a不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?4 u, ~/ x/ O2 D5 g! g) R
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
6 U" H# k7 r8 M8 Z+ q# a3 Z3 {注意接口参数传递。6 Z) J! N* J" q9 N0 p
" L: R; C; x% j
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
! }1 V% X9 r% u; a$ F不明白你为什么需要调用C++程序,正常是不需要用到的。
, S% V, l: J2 `  f! ]
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
# L- u, L+ p/ f$ m  Cplant自带的例子里面有教你方法,你好好看看。
0 K  U6 b- w1 M4 G
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-12 01:22 , Processed in 0.016687 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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