设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7445|回复: 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 ) b3 m- o! @% R7 P" X
应该不行吧,这是系统自带的语言,和C不一样
$ X8 X4 @  [1 H- @
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56   Q8 g5 {0 \5 x" v
可以调用C++。

0 A: X% l: ~6 N# K- P请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is7 W+ q* a1 q- Z& z  {! x
  2.         r:real; file:string;) }) x& a" m; q" M; k4 ^! Y
  3. do4 i. s4 }  P; c$ T( u7 s
  4.         openConsole;
    % I1 @, G& B0 w; T4 Y/ [
  5.   j1 q  [! j8 q! X" c
  6.         /*
    ; F4 r! s. g7 g/ q& T
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",9 n0 x0 |1 p6 z1 F/ H' R7 ?( `
  8.                                    when is64BitApplication then 64 else 32,
    9 \7 \& b" l- ]6 ?" x, ]/ g; w& V$ |
  9.                                    "bit.dll");' m, G# X& u( a) {2 s  y2 p
  10.                            */6 p# u  b9 B9 \, r0 K. o( d' ]
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";3 v; v8 ?/ u$ U1 M
  12.         local j := loadLibrary(file);
    ! B/ e# w+ D% j. C0 r' ^. W

  13. $ l1 x) ^  J3 q5 }! Q8 W# }" A3 X6 i
  14.         if j > 0 then: p' ~! S0 J  D. l2 _
  15.                 print getLoadedLibrary(j)," is loaded.";
    & @9 T3 I( |( t" Y8 Z

  16. * f  i( G, H) Z3 W
  17.                 r := callLibrary(j, "calcSin", PI/6);0 ^% f3 \. D6 X+ Q% L  @5 l& h' J
  18.                 promptmessage(to_str("sin(PI/6) = ", r));7 k' u3 K; W6 o
  19.                
    " p3 X( Y1 t/ \7 Y3 }3 N& Z0 a! A5 q
  20.                 local str:string;
    9 T5 l: S" R) `) i: J6 [4 \$ x" S
  21.                 str := "I'm OK!";
    5 X. M2 a/ _, Y& L, B* Z3 r
  22.                 str := callLibrary(j,"resetStr",str);6 t' E' m- h% ?- ~( H. P  e; f% H
  23.                 promptmessage(str);
      d2 E/ f# {( l+ C; H
  24.                
    # g, I. _7 f+ U: R
  25.                 callLibrary(j, "listAccess", Tablefile);
    % R& L9 u# K8 I* ]5 ?
  26.                
    2 ]; P( m+ p1 V3 l
  27.                 print "Unloading: ", freeLibrary(j);
    ! N' l, E) c& ~
  28.         end;
    : m! ]; g5 P9 I, n
  29. end;6 ~# E  N# d1 K1 f" M  k
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
) v: M: D3 M* Y1 b9 n
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
* P1 K9 F- _% T3 R+ }+ d7 Q
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
2 B& Q0 Y* a* q1 l  n注意接口参数传递。& g/ n$ k- Y- Z% q# G
5 `# j$ \8 |. [5 e
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
: p, w0 u0 s4 Z8 ]* z% x" R不明白你为什么需要调用C++程序,正常是不需要用到的。
" J6 E1 ?! n- \' M
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
, s/ b/ J0 L5 L/ Yplant自带的例子里面有教你方法,你好好看看。
. C% k% K* q# |- @! k
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-15 05:31 , Processed in 0.015406 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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