设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7970|回复: 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! o1 I% p( [* [0 `; F
应该不行吧,这是系统自带的语言,和C不一样
/ _/ F0 P- s- G( f) ~2 W: `& ]6 [
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 + y/ l) n4 ?+ S# I+ _" u
可以调用C++。
5 U1 H) ^4 C0 w  l! K! ?! s8 o/ @
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ( d0 |6 I: `: V2 |  r/ B# z
  2.         r:real; file:string;
    ; Y8 [" G$ H3 ?4 z; c6 w
  3. do: T1 Q. |7 d8 ^* Z
  4.         openConsole;
    ' X6 m& W1 R* q- D
  5. . ~  L) Z$ `/ O' m& A- N& N
  6.         /*8 g) F' {/ z2 t) w5 Z
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ) P+ I6 d6 w" ^6 e. N
  8.                                    when is64BitApplication then 64 else 32,
    ) N( e5 F. j5 G0 A( V4 E# J: d
  9.                                    "bit.dll");
    ! U1 j/ Z" B5 s% \# p/ t
  10.                            */8 f4 E! y( s- W2 z
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";5 i2 f' \; j) }( S2 s# v
  12.         local j := loadLibrary(file);
    ' P3 ]- }$ h! M! A/ t- P" Z
  13. : ^( S* G  o1 w. f0 x  ?7 `
  14.         if j > 0 then
    $ V5 w- u$ u2 j7 @) p# ~
  15.                 print getLoadedLibrary(j)," is loaded.";( i3 ]. |+ B3 h1 K
  16. ! g$ S1 c1 N' b( _. [6 d/ a
  17.                 r := callLibrary(j, "calcSin", PI/6);& _/ R/ d7 v- T" E
  18.                 promptmessage(to_str("sin(PI/6) = ", r));0 S' D" b. P+ r2 g; l. a6 ]
  19.                 + D/ F7 b+ T9 l( x. c
  20.                 local str:string;* h* F# }- W) z5 h+ d; v6 r
  21.                 str := "I'm OK!";: V- Y/ F' E" _
  22.                 str := callLibrary(j,"resetStr",str);! w- |1 M/ I  t& W; @
  23.                 promptmessage(str);
    5 D4 k& Z6 u, Q7 g6 o: j
  24.                
    3 _; X" o7 s) Z8 l; `9 G1 ^% K3 \
  25.                 callLibrary(j, "listAccess", Tablefile);
    ) s* X5 p  x1 Y' G
  26.                 - Z% G. f1 y7 Z
  27.                 print "Unloading: ", freeLibrary(j);; u2 v5 y8 V1 s9 k- Q6 h1 D8 W1 F
  28.         end;4 n; j4 m0 x3 f# r6 P
  29. end;+ R+ D% A( ^3 l
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
5 j  Y) U& g4 i" P
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
( {" c5 I: p0 l4 B8 Q& V, K
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
9 \7 R: i. e1 ^# D. z注意接口参数传递。
  H* N4 ]9 _7 w  @8 w( ?1 f5 r0 V* R7 H$ B; q
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
+ y+ x1 r5 k! k  N7 p) s0 K不明白你为什么需要调用C++程序,正常是不需要用到的。
0 ?. C" R* D- f) b! v, I( x: n
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 / v8 H8 K/ A* _4 E) |
plant自带的例子里面有教你方法,你好好看看。

5 e5 l$ Q8 s8 \) w6 e$ h3 b哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-8 13:09 , Processed in 0.022501 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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