设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6554|回复: 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 ; L* R% D& \' m# R: \: B
应该不行吧,这是系统自带的语言,和C不一样
; {' y. f3 I0 e8 T
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
1 z$ G4 Z1 |7 e% `1 k! w2 c# \; H可以调用C++。
/ k4 s; [8 _3 p8 \; p, z
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is+ H! H# b$ a/ l$ t; \
  2.         r:real; file:string;' J" s0 ?. N% I) ~
  3. do
    2 P6 [: [2 F- v. O
  4.         openConsole;: V5 ~% H- o/ w% @; Q  r% B

  5. , C7 D/ k2 D5 u2 h
  6.         /*
    , ]% N% x3 D5 G, B1 [1 U
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",% n$ _; U" K3 C. B: Q, R" V5 d
  8.                                    when is64BitApplication then 64 else 32,
    - f9 Y% R; P* _4 P
  9.                                    "bit.dll");6 U& D' D3 u9 \" n, Q" f
  10.                            */
    , d! [, z; g/ f! n  I
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";' V7 d3 N* i4 L9 W- g
  12.         local j := loadLibrary(file);+ K% L' M. X6 D8 O! Z. z! R
  13. 0 r% ~' x$ d; _, N
  14.         if j > 0 then& ?( S3 D' u, L7 ^1 z: X
  15.                 print getLoadedLibrary(j)," is loaded.";1 ^+ V9 l8 b0 Z0 ?  Q8 m4 F/ E! F' A2 V
  16. # g, o6 T1 @" ^/ Z' n% C' r
  17.                 r := callLibrary(j, "calcSin", PI/6);1 T# _5 p0 [  h! h
  18.                 promptmessage(to_str("sin(PI/6) = ", r));5 r% Q% o7 b* C9 h# c* J
  19.                 3 N' B" D! L% U) |( U1 d+ A
  20.                 local str:string;' ]. k! r! O. O1 Y
  21.                 str := "I'm OK!";
    ) x' |0 d: J7 J' T! l  v" i
  22.                 str := callLibrary(j,"resetStr",str);
    5 `, i1 b& `( l2 D) g
  23.                 promptmessage(str);0 {  X" ^  ]3 p) N8 N/ `; r8 e, X
  24.                 ) s9 R& U! T2 j  v
  25.                 callLibrary(j, "listAccess", Tablefile);
    ) K# t* ^) R( j: M8 M
  26.                
    6 m" j) v: f5 R# a
  27.                 print "Unloading: ", freeLibrary(j);% ^9 c' `! l3 k+ f7 W
  28.         end;
    : Q: f: ?; W: L6 |, h) [+ _
  29. end;, I& J) b- A. I/ @1 x: l* F
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
0 a! m) |3 C* \8 j4 g# c8 X
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
$ j$ f3 P) w( ^- W5 J2 o6 h% y
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
5 X4 C2 M& i/ i/ `注意接口参数传递。
4 r7 ^# O7 G# I& `7 {! A" a2 A' ~6 n& Z* R4 A
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 & s2 B" W+ ~0 c8 F8 N
不明白你为什么需要调用C++程序,正常是不需要用到的。

  C& K  w* X+ c就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 + E! _% X: g( h
plant自带的例子里面有教你方法,你好好看看。
* M! K4 z6 {9 E2 l- Y: n1 ]
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-8 03:50 , Processed in 0.020538 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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