设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7930|回复: 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 # M) t3 c0 S) {. G& G: Q% T
应该不行吧,这是系统自带的语言,和C不一样

/ A5 O0 I7 _$ T" b; q9 [7 x4 C好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 2 g9 w) G3 o; c, z9 }
可以调用C++。
, i7 Q$ y! m3 S$ F8 O
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    1 e8 ]3 {" k, H6 r2 N# R
  2.         r:real; file:string;
    + K' ^& L6 n4 B/ Z) v
  3. do
    ) A9 \  }5 G- F! U0 v5 c
  4.         openConsole;) G* \! {& y6 ?+ q: u% F& L
  5. 5 }' Z8 K( Q' j- u1 F, m
  6.         /*
    ) n  n6 U9 V2 p  B
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",3 G7 y/ J' l  }
  8.                                    when is64BitApplication then 64 else 32,
    1 \+ Y) a9 P9 x$ d7 c
  9.                                    "bit.dll");+ @4 A6 k( a. {; i" k" R9 p/ f
  10.                            */
    3 O" X! w5 _' m0 ]0 \* Z
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    ) R* ~8 Q' W$ J& a8 F# H
  12.         local j := loadLibrary(file);
    7 u, }3 A6 i7 v3 E6 K4 h: @
  13. ' d9 ~7 t) P8 W# v# x9 k
  14.         if j > 0 then
    0 ~: q; Q3 w6 s# L: C" \- ^- W
  15.                 print getLoadedLibrary(j)," is loaded.";. ^, z. s( l- @. \

  16. ! b/ U- X0 E0 O& z: R
  17.                 r := callLibrary(j, "calcSin", PI/6);) L0 `+ x& {( o
  18.                 promptmessage(to_str("sin(PI/6) = ", r));, q; Y. b0 q' |7 t
  19.                 0 ^- f! u1 D5 f" w: i: |
  20.                 local str:string;
    : z/ `$ d5 _6 Y3 u$ b. _
  21.                 str := "I'm OK!";0 V6 S$ w# Z0 D9 n
  22.                 str := callLibrary(j,"resetStr",str);- W# B, R4 h8 Q) r6 K
  23.                 promptmessage(str);" W0 A" h; c0 Q& P7 \. N
  24.                 7 H" m3 Q3 }. ]/ b
  25.                 callLibrary(j, "listAccess", Tablefile);% K" C5 _% N, L  U7 t
  26.                
    1 {& v  z) `0 s4 l, `2 Q0 d5 Y
  27.                 print "Unloading: ", freeLibrary(j);
    7 S9 n8 ?2 q1 B: _& B
  28.         end;* t1 Z8 r: Y( K
  29. end;
    % _" m- E, E; z
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

- @9 t& C  i* T0 n$ O) d不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
0 o( n) x! u, N6 g
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。1 H- c0 G0 M5 B  q( p* A
注意接口参数传递。
, }, C6 a7 q0 K0 Y, B3 s; v) d" k$ u- o# C7 @# F8 l% V: u* C3 H% w
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 ; ^+ `7 V. B/ u/ {. _" K5 Z
不明白你为什么需要调用C++程序,正常是不需要用到的。
3 S- Z2 W% I' D3 T
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 . r  T7 J. R7 P  A
plant自带的例子里面有教你方法,你好好看看。
* i6 H& {# F: U
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 20:09 , Processed in 0.018052 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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