设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7522|回复: 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
9 M& W/ Q# I% ?  p! z- a应该不行吧,这是系统自带的语言,和C不一样

/ W8 n/ \+ f6 _0 u3 j& b好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 2 x9 I1 r1 \6 c" d" i
可以调用C++。
; N+ m2 e7 w5 F
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is$ O6 |/ n& [# ^
  2.         r:real; file:string;
    ! J2 _. \0 Q" v+ g0 u$ S
  3. do' y1 j& L/ i3 u
  4.         openConsole;: F6 N- _3 e) c' \  S  F) G) o
  5. 5 |9 T6 Z  P8 y7 j$ T
  6.         /*, I( f4 H' m$ K
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",* v7 {) |$ t7 x# t: }. `! R
  8.                                    when is64BitApplication then 64 else 32,
    $ h. K* R$ D) |* `* b, J
  9.                                    "bit.dll");+ f$ D2 L4 R6 p( \5 O- B
  10.                            */
    * N/ ^# d2 h9 X' t0 X
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";0 ]: s; k# Q/ t" G: v
  12.         local j := loadLibrary(file);) g7 L# e: P) D2 u

  13. ' F5 ?4 p5 D# X4 z9 `7 R$ R  x3 V
  14.         if j > 0 then
    8 H% }* I) i9 f1 m! c8 x3 a; _
  15.                 print getLoadedLibrary(j)," is loaded.";1 E( u# i7 F0 f2 S) C: H' D

  16. 3 Q. e$ p& j+ z- L! T7 U$ f
  17.                 r := callLibrary(j, "calcSin", PI/6);
    " Q' j- P) d# c# m1 _: R* |- c: {
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    4 i8 }! r+ o( T8 Z+ z6 e8 |& C
  19.                 ! N; o2 G( H! B' H, F9 }5 a9 v
  20.                 local str:string;3 O! n4 I8 @* [' S: _
  21.                 str := "I'm OK!";- k0 @' V7 O7 S) S3 V
  22.                 str := callLibrary(j,"resetStr",str);5 e3 p) T; r' t7 a, p7 d3 M8 I
  23.                 promptmessage(str);
    2 |9 r, r0 {" v
  24.                
    / n4 @* x2 D0 H- k
  25.                 callLibrary(j, "listAccess", Tablefile);
      o) r2 K- R# L$ v3 T+ |0 o
  26.                
    ) J- _. n% k9 b5 U5 ~, r
  27.                 print "Unloading: ", freeLibrary(j);
    $ S  h" L7 t+ a5 ^) S3 ^! [
  28.         end;' @% S# W2 Z+ T. e
  29. end;& n$ V0 ~6 v+ Z( B
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

, y! j, k9 z1 G& D3 A" a' w不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?4 T) Z5 I. F  ~+ b0 h5 m+ o5 N
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。# w3 K  h, X+ O$ V
注意接口参数传递。
$ ~: g( e4 p, t7 Z; S: M( V9 m
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
( w' ~9 ?5 U1 k不明白你为什么需要调用C++程序,正常是不需要用到的。
/ O' ?3 E2 y* _
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
; C- V% R  @) f& W0 L9 v" z. Aplant自带的例子里面有教你方法,你好好看看。
% z+ q1 t/ C% F, c
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 04:36 , Processed in 0.019697 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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