设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7711|回复: 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 3 W- J+ f  ?/ B5 L
应该不行吧,这是系统自带的语言,和C不一样
+ k8 t  J: x$ H  H
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 ) S# L! P" Q2 R3 |. p: Q
可以调用C++。

8 _+ q4 M' O0 Q% B( I6 D) m" M请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    # ^% h% ^  w2 D$ z
  2.         r:real; file:string;
    ! e! E$ G, G6 C7 Z. l
  3. do
    ' Q  I2 e$ ?( z) V& N7 j2 a
  4.         openConsole;  Q% O- u' U- P1 ~8 w! f: w

  5. , \3 |: R& n% O9 P, M6 j) y' i
  6.         /*
      R: U$ J" y0 J( z4 s" K2 e  Y; [
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    4 P+ v6 o8 @. d
  8.                                    when is64BitApplication then 64 else 32,  \& ]3 w" }0 |* k
  9.                                    "bit.dll");
    + @$ k, k9 ~* S0 K8 |- t, L
  10.                            */& o' y5 K2 G" H( I
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    3 Q3 Z" ^& H; J6 ^2 k
  12.         local j := loadLibrary(file);
    + D9 E! |/ M$ x% ]* Q- x4 V6 j7 A" G

  13. 6 F+ m- o9 O. d- y3 U  O7 b1 C9 t
  14.         if j > 0 then- ~8 F% c* x; v0 ]: ?+ @6 y
  15.                 print getLoadedLibrary(j)," is loaded.";( Y1 j' ]0 l; w( @7 t4 |
  16. * i) d, t1 N9 @$ m9 e- S+ ~
  17.                 r := callLibrary(j, "calcSin", PI/6);) P4 g0 |7 B0 {5 I- o+ x- H7 [9 F
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    % Y) U/ D  X% B* c" J% d6 {
  19.                   a6 L) L7 o9 N/ {: m5 j" h6 h% Q5 V
  20.                 local str:string;
    " I- V8 d# l5 Y$ O9 R9 @6 M
  21.                 str := "I'm OK!";8 E# q8 c# b  n  s6 ?
  22.                 str := callLibrary(j,"resetStr",str);
    0 k! y  ~" E/ I) l/ M
  23.                 promptmessage(str);% w- y1 |3 m) ?( P% m
  24.                 ( a/ a) {2 D, I- L4 ~) z  }
  25.                 callLibrary(j, "listAccess", Tablefile);
    ; P& N  Q! \& u
  26.                
    # ~0 W$ y4 K  [' A  I; w6 w
  27.                 print "Unloading: ", freeLibrary(j);
    / \$ F4 A; R7 ]/ G' \2 |
  28.         end;1 A) i. F) H7 I9 T1 r
  29. end;
    7 ^6 `3 _( `3 V9 T! d; F% D
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

% L0 X& l. {2 J" Q0 J' [5 m不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?8 H  _0 L) O# R
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。0 _9 V2 x+ d/ }8 z  C' Q
注意接口参数传递。
$ z! Z; H2 T) L  A; Z
0 l; j' w* l. y) p+ Z$ B感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
" Y8 v2 C& [' n# c$ J% u3 D* t) v不明白你为什么需要调用C++程序,正常是不需要用到的。
$ a- @% C/ i8 u  t$ a1 j3 C/ b1 z+ v
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
9 P- I# S6 L5 |) L  a/ Mplant自带的例子里面有教你方法,你好好看看。
' g; C( t0 x" X' Q
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-14 07:03 , Processed in 0.017042 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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