设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7136|回复: 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 . R8 E" {! e/ J1 X: i! Q
应该不行吧,这是系统自带的语言,和C不一样
$ U3 Q1 Z3 k9 V) B- ~! _: n
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 ( `6 }; O) ~) B3 T, |
可以调用C++。
- N- T& l. U3 @/ \: N5 x0 M
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is) r3 o, z. D' A
  2.         r:real; file:string;
    ( |# t. f2 M5 ]
  3. do3 f5 k7 L3 G7 {2 [' V# p- D. B5 Y
  4.         openConsole;
    7 z% g0 I3 r* X0 m( Z+ Q
  5. + D9 y: w# E# H" v
  6.         /*
    5 @" e/ \; j3 ^
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",4 ?- u: k, D# O  @' }$ e
  8.                                    when is64BitApplication then 64 else 32,
    / Y  Z* b( C$ M0 ~6 Z
  9.                                    "bit.dll");/ U: a+ v  F! ]6 v" c2 d1 _
  10.                            */2 v" q: ~- T+ E# B$ {
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";7 Q( f& p. X$ `4 n5 e- A
  12.         local j := loadLibrary(file);
    ' x; O, g' _5 k

  13.   ?. e5 Q5 x( K6 {8 R
  14.         if j > 0 then4 Y9 x  U$ S, T! B( M6 L# p& ^
  15.                 print getLoadedLibrary(j)," is loaded.";" [. m& W% r/ _- X
  16. ' q0 ~: Y2 ?+ S
  17.                 r := callLibrary(j, "calcSin", PI/6);2 P( O1 i% v5 _7 ~: F* o9 N1 p7 ~
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    . D2 d/ U+ w. ^
  19.                 0 i/ f- f- O3 t- Q
  20.                 local str:string;
    $ D4 ]6 A" P' }! R0 f, _& e/ M
  21.                 str := "I'm OK!";
    : w" B  n4 L. @) Q3 p+ N
  22.                 str := callLibrary(j,"resetStr",str);2 |/ B" H  O) o# Y7 q( h' M  F
  23.                 promptmessage(str);
    1 L1 v4 Z& s& U; O& f
  24.                
    . n# v# E* F$ ?( \* }8 w, p. @
  25.                 callLibrary(j, "listAccess", Tablefile);
    0 i2 X5 Y  N+ l3 o" ?
  26.                
    4 A7 }* U5 H; t4 X8 D  u
  27.                 print "Unloading: ", freeLibrary(j);- U3 X6 h( I/ l9 E- v
  28.         end;
    ) p1 @2 l+ a# U) h
  29. end;$ C! ], G8 E( m& _+ l$ M( W
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

  }2 o. |1 C. Q" E1 |* J不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?$ ^4 |5 k3 B9 F  |7 e: E& s% e
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
: U6 P3 V* e$ Q注意接口参数传递。
* o# \( P& x+ U) W4 N; Y/ ?
( u3 F- d7 I+ v感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
( \7 O3 C! H/ N; k% X% K不明白你为什么需要调用C++程序,正常是不需要用到的。
; T2 T8 B  S1 P! W
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 1 _! J: G" d8 t' j/ l7 d" I/ s
plant自带的例子里面有教你方法,你好好看看。
2 R* }' ?' `- ~9 q% |
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-25 12:39 , Processed in 0.020686 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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