设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7067|回复: 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
/ X6 X3 M% y5 s$ G' G4 v  F/ L" B4 p应该不行吧,这是系统自带的语言,和C不一样
3 P2 \& ?* A& q; A
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
' g* ^* Q6 C* v( C& Q* K$ {8 ]9 B可以调用C++。
; c9 m7 `7 ]' K7 N* Z( I/ H; q3 n
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    8 r- k! A8 x2 \0 L* h2 C
  2.         r:real; file:string;
    ' m5 L4 s5 s1 I
  3. do
    ! f, }# Q  T3 o- \) A+ d2 s
  4.         openConsole;- C2 X! L% Y# z2 q% ^
  5. 3 O) z$ l/ G( e
  6.         /*: h0 j/ P) _$ K) x
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
      q0 n6 i' R1 Z" r8 f- z
  8.                                    when is64BitApplication then 64 else 32,' }$ b, i" `# t6 d1 L. ?" m. V
  9.                                    "bit.dll");* G& C1 ^/ Z7 H- u+ w2 c
  10.                            */4 A+ w- ~+ \! t  @; f
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    9 X! D  n$ a1 Z# p9 k
  12.         local j := loadLibrary(file);
    1 a( @8 N7 j& v/ e4 m  J3 p
  13. * Z" E, ~* c3 C2 i
  14.         if j > 0 then
    2 D6 j5 \& [, P4 M$ n$ c/ k7 N
  15.                 print getLoadedLibrary(j)," is loaded.";
    & Q/ E8 [. l4 C% ]" L
  16. " I6 A; J) q0 j4 k& r
  17.                 r := callLibrary(j, "calcSin", PI/6);
    " J4 V  D: ]5 h: N3 `' A$ s
  18.                 promptmessage(to_str("sin(PI/6) = ", r));- z% q- N' b3 `3 Z  b  k
  19.                 : I6 u- Q6 V3 r
  20.                 local str:string;# T1 q+ j* @3 a; x. Q, p
  21.                 str := "I'm OK!";- D2 v) J* c1 e/ F1 V
  22.                 str := callLibrary(j,"resetStr",str);. d/ e6 l! a0 D6 q$ a' m1 C( J
  23.                 promptmessage(str);
    ( G3 Y7 t$ O& t/ b6 b  t1 v4 n
  24.                
      U" m, K# P2 Z, u# c
  25.                 callLibrary(j, "listAccess", Tablefile);, }5 G" y- i( K
  26.                
    7 @8 |  j( [+ \4 ^; ], E+ O0 [7 q
  27.                 print "Unloading: ", freeLibrary(j);( [% _) D5 I0 b6 ]
  28.         end;1 ^6 q& k* `2 u. P' j
  29. end;
    + v. K; F6 m0 T4 H8 R) f
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
$ E8 ^3 f6 x3 p- _
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?8 r  S  M9 n9 C) R
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。+ y3 l& C( A& {1 g4 ~% n
注意接口参数传递。0 Y# r7 V/ a; o5 Q. g; _

6 ?/ X' @. Z- j感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39   Q) |1 l. a: I+ I4 d
不明白你为什么需要调用C++程序,正常是不需要用到的。

0 F! [! g0 f* u1 m就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
' f( X) @# x0 Xplant自带的例子里面有教你方法,你好好看看。
: Y6 i, R, P! a# u7 @4 {
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-15 15:17 , Processed in 0.015508 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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