设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7027|回复: 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 - ~. I2 p  M" p) Y" j! a$ r
应该不行吧,这是系统自带的语言,和C不一样
+ J# r+ R" h8 O1 M. j
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
; b4 `0 {; q; [. X5 F可以调用C++。

0 b" X/ f+ U4 L: M. g请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is* e1 {# z7 |! X- \5 F/ |
  2.         r:real; file:string;* ^' p9 q/ c1 z6 p9 s
  3. do; t6 m% P% ^) ~8 }9 }
  4.         openConsole;
    5 x- [& E2 W4 T* A

  5. & h7 \7 T' h5 ~* y
  6.         /*/ q. Y! f+ a9 F) q3 ?# s1 t8 k
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",9 Y0 z) _% \7 a9 S$ l2 ?
  8.                                    when is64BitApplication then 64 else 32,
    ) q. b% A5 _. g; z5 Z2 t2 w
  9.                                    "bit.dll");" U% Y& ~/ K  |7 R2 W8 j0 u. p) f
  10.                            */- i# ^* u3 l" ]8 R* F8 k/ b
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    ! _; @( Q) b9 ?; V
  12.         local j := loadLibrary(file);9 f# A/ ^4 j  b! p& F
  13.   R1 ~* X1 O7 h. t/ {1 J* S
  14.         if j > 0 then
    5 U1 p  N2 g- P9 ?7 u1 I+ }8 U* _
  15.                 print getLoadedLibrary(j)," is loaded.";# |% y" n( o8 m5 S& s; T$ x
  16. $ ]  N2 ~% W: m3 u3 j
  17.                 r := callLibrary(j, "calcSin", PI/6);( P9 R3 V, x# R& }
  18.                 promptmessage(to_str("sin(PI/6) = ", r));, K5 M. a! p3 N$ s
  19.                   d( H/ V) C4 y) y: l
  20.                 local str:string;* @+ x8 H* t2 L: [+ \  {
  21.                 str := "I'm OK!";& w7 U& z) C* I/ g
  22.                 str := callLibrary(j,"resetStr",str);
    & A& K0 ?5 o* ~/ t$ a7 ]& \. s' v
  23.                 promptmessage(str);
    ' r* G8 j, ~" W& t# y5 c
  24.                
    + J) s5 X' V+ r: E* K
  25.                 callLibrary(j, "listAccess", Tablefile);
    ( o5 v( L4 M. {7 [$ [
  26.                 5 g9 R& h2 c' e, _5 f5 Q
  27.                 print "Unloading: ", freeLibrary(j);
    ' B% l" Y; Z: b, s) S+ k& Z% b1 v9 \
  28.         end;
    / b/ }  y8 U! Z, w" Y, `4 d
  29. end;
    ) }9 v  F4 @- ~
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
2 K8 s& t0 i2 t" p# [, ~
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?& @# }/ Z3 n2 M
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。' E0 W; e6 Z% U8 g% W0 l/ G* \
注意接口参数传递。
  X. M8 R) ~4 A, w  F/ `. E; `3 N
- }6 `) z1 ]6 ^: h% K' w感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 9 }$ H) {# y' L: G
不明白你为什么需要调用C++程序,正常是不需要用到的。

5 J# ?3 f' J5 n! Z- E就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 % M5 }, v( \# d" b  T' w
plant自带的例子里面有教你方法,你好好看看。
- f: H/ V; m& {9 a  ?4 S4 N6 _% a
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-5 23:50 , Processed in 0.022586 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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