设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5289|回复: 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 # E! ^5 o; D& F* g. \
应该不行吧,这是系统自带的语言,和C不一样

7 i* ]/ T% N5 a2 {) K好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 0 n: u9 ~" }" s7 S% {; z0 y
可以调用C++。
5 ~+ ?0 h/ G7 {$ t$ {
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ! i- t/ d* ]( I) X' B' f% Z
  2.         r:real; file:string;
    ) k7 M: z% E" b& W
  3. do
    % z, R( N! C: u: _0 |( `- D- [
  4.         openConsole;2 D) a% F! A: R$ q; @5 y% U7 A  j

  5. , J# O% S$ u) d) H. F, d$ r
  6.         /*8 C6 K# M4 }* s$ [; ?
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    , g1 u, V( E6 Z& @
  8.                                    when is64BitApplication then 64 else 32,
    8 h" o& q# _0 R/ S
  9.                                    "bit.dll");
    & l, p" S, `: l: B
  10.                            */
    $ H( V$ x" R. o( R1 z% n' Y9 j
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";- H  _. ?1 S% t! }1 n
  12.         local j := loadLibrary(file);- J% |( w9 c0 g/ u  r
  13.   V$ Q0 v/ ?; ^* a8 z, O
  14.         if j > 0 then
    1 J% }& S, c1 Z% t3 Z
  15.                 print getLoadedLibrary(j)," is loaded.";
    ( N3 d4 D  c3 m. @7 w/ W4 L
  16. 5 l& |) [* U# e7 N5 U
  17.                 r := callLibrary(j, "calcSin", PI/6);! \& Q9 {( _$ D/ m6 |2 }( P# G" [3 j
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ! Y' ]2 |4 {$ H6 H; z* ]; m: d6 C
  19.                
    , t$ i( q. O/ F& F1 ?1 N1 Z% |6 X
  20.                 local str:string;' {/ l; {0 F9 e3 m
  21.                 str := "I'm OK!";6 [' _: _1 g1 L' s) U4 Q- e/ v
  22.                 str := callLibrary(j,"resetStr",str);; ~  Z+ i0 t$ W) Q
  23.                 promptmessage(str);' k, O7 g/ D  F5 K0 J0 U5 r
  24.                
    0 `: s0 k& A9 M$ N0 ]
  25.                 callLibrary(j, "listAccess", Tablefile);4 X/ u5 }0 p  o3 L# o- p
  26.                 ; i* ^  c1 \: {  ]4 N* @- O
  27.                 print "Unloading: ", freeLibrary(j);- S6 K# ?- R. `, g
  28.         end;
    / P% @' O, Z4 n8 p
  29. end;2 W$ h' w# Q6 g  `4 T' V' }
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

7 n. `) J- `# t  k7 s! x7 V2 d不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
8 L3 O7 ~4 t' C& V
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
. j* V) W" W5 o% o* n8 ?注意接口参数传递。
2 f! D  s/ y9 P6 @5 p$ A
, z; I6 a4 }, \) n感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 / v. b0 {; p: |, z% c6 e3 m
不明白你为什么需要调用C++程序,正常是不需要用到的。

) w) j& Y3 F) j8 e' _就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 ! h/ l2 W. K3 B& ]0 T4 A
plant自带的例子里面有教你方法,你好好看看。
) z6 s7 P) }# L( [+ A* p. ]+ H4 `
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-1 02:01 , Processed in 0.018259 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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