设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7193|回复: 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
5 p# Q& Z- d/ a% X  m7 q" I9 ]应该不行吧,这是系统自带的语言,和C不一样

2 ~1 ?) X. ]% |5 s好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
5 I3 M  f& `  B2 ^. {& g+ M4 E可以调用C++。

$ E3 c: i) R1 }) E/ b6 G请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is7 I4 t7 f4 R) b$ j
  2.         r:real; file:string;) E) I: B8 w3 U  ^+ V& l
  3. do: ?! \. [" A, G! w# u7 H4 {
  4.         openConsole;( g& W9 b/ H+ i6 E$ F/ t
  5. 1 x8 b" O2 ?4 c# u! {) z
  6.         /*  U6 i: }/ B  \1 e+ \. V
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    & F! g6 ]7 w9 t' q9 K
  8.                                    when is64BitApplication then 64 else 32,( t: A( {1 h& U0 {0 W2 y+ D4 D
  9.                                    "bit.dll");
    4 F% F6 k/ G2 S6 h- ^
  10.                            */
    $ v( C1 E2 O# a- \! `7 i) w
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    7 x) T/ E: d5 w4 V( {' ~
  12.         local j := loadLibrary(file);" l1 K9 k/ m. x2 [5 Z1 g
  13. 1 o6 @1 s3 ^2 {1 ?' c$ C
  14.         if j > 0 then7 ~/ s; g( w% i/ U6 O9 s0 n& f
  15.                 print getLoadedLibrary(j)," is loaded.";
    - a  g3 a2 i& {% O8 k. a( j

  16. * w( |- J! A) ]9 t9 F+ |4 t
  17.                 r := callLibrary(j, "calcSin", PI/6);3 v: n, d/ }; a+ n0 t; ^2 p
  18.                 promptmessage(to_str("sin(PI/6) = ", r));; m9 y8 y$ M5 @; H8 _2 h* V
  19.                
    # a8 e0 B; L1 u+ W! Y
  20.                 local str:string;0 A8 l* M1 |8 }( `5 V7 {5 h/ ^
  21.                 str := "I'm OK!";
    6 u7 L% q: f# }
  22.                 str := callLibrary(j,"resetStr",str);
    / l; z' w8 ~, U1 x! H/ B7 u7 Q5 d- e5 h
  23.                 promptmessage(str);
    9 E& O7 }$ M+ X0 \# N' r) R
  24.                 6 C! E5 F% a4 Z# A9 D' d
  25.                 callLibrary(j, "listAccess", Tablefile);0 C/ {/ ?$ s6 s: D/ ?! W- n3 @
  26.                 6 T: f0 a! S& C# t6 z( T' @; A
  27.                 print "Unloading: ", freeLibrary(j);
    6 q5 f( v' `% ?" G# c2 W2 w9 E
  28.         end;% v  h5 y/ x% t. S. s1 e
  29. end;. f9 L$ b; Z, l  L" u
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
( H* S) w9 ^+ x6 x+ V7 y
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?2 d6 I3 }: R0 n. F! a9 l* J
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
# q9 {2 w. |! b% T+ ^6 i注意接口参数传递。
4 d$ ~. \0 M) j* n& w+ k
( \* w  B# |, ?0 c  l& X感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
" {, X- s: t4 F/ K: u0 ^不明白你为什么需要调用C++程序,正常是不需要用到的。

2 @5 K+ [: q7 a2 x0 T就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
- }7 ?+ `5 A3 x  P* K+ O! jplant自带的例子里面有教你方法,你好好看看。
& X, m) _) N! h( i$ b  H0 E+ o
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 10:25 , Processed in 0.025968 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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