设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7294|回复: 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 8 n2 S3 C' g2 r! p8 |
应该不行吧,这是系统自带的语言,和C不一样
! z  F3 T. T2 R/ V
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
7 q& {5 b+ q0 ^! `) K$ d/ ?; ?可以调用C++。

: W1 f' G# T6 Q% y, k0 C请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    7 P: u  [  O2 l+ a' q
  2.         r:real; file:string;
    ) v7 S* @2 J' Z- e
  3. do
    $ k; [2 G7 R$ |" P7 i% B
  4.         openConsole;
    / T3 X( G  b1 F

  5. 8 {! [( W' K1 T8 H/ o
  6.         /*
    7 N& P  v/ }" `, H" d; M8 ]
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    , y  ?- _2 R0 N7 a
  8.                                    when is64BitApplication then 64 else 32,) i" W: q7 g0 [" t
  9.                                    "bit.dll");+ |4 E, c3 i+ ^% ?1 |5 X$ [
  10.                            */5 T4 t1 l3 i  m1 W( C
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    $ q" A2 M0 L7 t1 R* k7 u* @) T
  12.         local j := loadLibrary(file);! X5 {# M4 ^, f0 V3 ]9 B. Y

  13. - \1 P% f, m$ C5 E  w
  14.         if j > 0 then2 b5 @, [, _9 u0 `3 v
  15.                 print getLoadedLibrary(j)," is loaded.";
    . Y8 x5 k  D& r. R5 @  T
  16. - W" ^. @+ r8 l; h7 ~
  17.                 r := callLibrary(j, "calcSin", PI/6);8 i2 t0 l; Z% j; t8 a8 q# P
  18.                 promptmessage(to_str("sin(PI/6) = ", r));* Z% @: ?6 ~# x' Z) R2 g8 {+ K
  19.                 6 l* w! d- p, M2 z) X: M6 D! K
  20.                 local str:string;
    ) K5 I6 I4 w7 |7 l
  21.                 str := "I'm OK!";  z* t8 B1 Y9 a+ g5 U( V; o. H- ^
  22.                 str := callLibrary(j,"resetStr",str);  ?7 F0 c! u& `( I
  23.                 promptmessage(str);! |# t* s. @" a4 |8 T% S$ N9 u
  24.                 ! B3 }! J' T  C. R6 n
  25.                 callLibrary(j, "listAccess", Tablefile);
    0 o( Y  U0 K7 ^! T
  26.                 # p, E' E+ H9 H+ W# b4 [4 E
  27.                 print "Unloading: ", freeLibrary(j);. u2 I% g& ~( Q
  28.         end;
    , f# [. R  A. `1 y2 J
  29. end;4 u1 i" x; m. r0 N3 Z" D. e
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

  a4 E+ j5 l7 `9 j4 [) @/ y不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?: X% u( R+ e1 r+ U6 O1 d4 J! G. u
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
) q1 Q: a1 M, O" N# G# l5 k注意接口参数传递。  T* y1 J1 h/ n5 _% `

0 R# w: U& R3 K* Z+ g感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 7 S  G/ g6 V7 W) m3 n* ^
不明白你为什么需要调用C++程序,正常是不需要用到的。
& ?1 W$ T' T9 g. Z2 G5 W
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
, B; e! E  R7 g2 \$ j; U2 iplant自带的例子里面有教你方法,你好好看看。
7 Y4 t- v: `' c  A1 |
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-17 04:27 , Processed in 0.031369 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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