设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6675|回复: 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 ( i& M$ K9 ^7 J1 G- N  i. j
应该不行吧,这是系统自带的语言,和C不一样

# B9 `8 x% l; G- |2 P2 D好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 $ z/ R) [) S' s0 \
可以调用C++。

' @/ }, c+ v1 n' X2 w" A- d请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is# d* P& x) I: h+ C' W0 a
  2.         r:real; file:string;
    " R/ m2 R& c7 Q1 p2 ^) K
  3. do, t8 a( k; M, J
  4.         openConsole;0 r, ~, O7 B) l, i$ u
  5. 4 ?& j& W  F( c0 P/ B
  6.         /*
    8 @2 I9 O; N! J0 v# ~- ^! m9 A
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ( `" g* q; N, m. ^
  8.                                    when is64BitApplication then 64 else 32,  n+ x( H/ @/ e$ y" l0 K: u
  9.                                    "bit.dll");
    0 v! W+ }/ Q: ~
  10.                            */
    + B" }9 i7 a1 Y9 F5 I! S' L
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";& Z" v' ], D3 ^/ j5 s7 t
  12.         local j := loadLibrary(file);
    0 J1 x( b( P% J" j7 @3 N
  13. + Y* b* e: z7 [: f7 B3 ~& Z
  14.         if j > 0 then
    + |: a$ P! f/ o( j- L6 U) d! L6 ?
  15.                 print getLoadedLibrary(j)," is loaded.";
    1 f% ^4 X9 k4 b) O9 V" u
  16. / e( N$ Z) L+ ~9 v' H
  17.                 r := callLibrary(j, "calcSin", PI/6);/ P+ t; C6 R9 i( k4 q
  18.                 promptmessage(to_str("sin(PI/6) = ", r));& ^' y  D' g6 w+ u4 V. U1 u6 u
  19.                 9 ~7 ~+ @1 Y7 L2 P9 T5 \: N& G! l
  20.                 local str:string;1 N" j5 `2 l7 _" Q! l% B
  21.                 str := "I'm OK!";
    5 c' S' \9 D9 O
  22.                 str := callLibrary(j,"resetStr",str);
    6 ^( q; H3 ]6 a1 f* M
  23.                 promptmessage(str);
    1 T) R4 N. O  o! N3 s+ K
  24.                 7 Z2 j5 Z$ R8 ~5 G3 [9 g
  25.                 callLibrary(j, "listAccess", Tablefile);
    8 u2 b( ?6 l% g; z3 q9 V
  26.                
    4 x3 Z: @. p! z0 `
  27.                 print "Unloading: ", freeLibrary(j);2 _. H- J8 p4 g) U! ]& |! J
  28.         end;
    : D, u2 Q! ^* m& n' {
  29. end;
    ( b5 Q  T3 S# {  @1 h. W2 p) t+ S
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

4 _9 h" Y; b7 p' H" C不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
* u; s" ^4 w+ N) V
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
: q, i2 L: h* p2 o5 U+ }注意接口参数传递。
) w9 q( Q$ k: i9 w* P. M, q: U' v# _& W5 v( A- I
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
7 x' T0 k# t& h不明白你为什么需要调用C++程序,正常是不需要用到的。
2 I% X* e- K5 `, }# x
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
. L1 b# n- H" S7 j) N7 h! kplant自带的例子里面有教你方法,你好好看看。

) h, d  t2 ?5 }4 [1 u哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-2 10:49 , Processed in 0.020492 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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