设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7565|回复: 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 / a3 W/ m9 W6 k' P' z$ y$ v
应该不行吧,这是系统自带的语言,和C不一样

6 S4 C1 ]# w7 H2 ?9 k/ d' k1 a好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
: Z. J" A- \6 R& `. A' p可以调用C++。
! l* m2 o! q, M. L# g5 u) J
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    5 r* }8 Y1 C. r! X
  2.         r:real; file:string;
    + W) P$ X" `, q" D" a
  3. do' E3 H% j( ^: x- i) o! H
  4.         openConsole;
    & a4 ?& {+ `) o# I/ G0 I2 ?

  5. ) Z4 o+ O/ J3 C$ _4 x
  6.         /*
    # x; L4 F: L% q
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    5 e) p0 A$ f$ v
  8.                                    when is64BitApplication then 64 else 32,
    ( @7 Q. b- W3 S2 J4 l6 u! {
  9.                                    "bit.dll");
    5 ?( t2 X, L7 v$ r; b/ T+ H
  10.                            */
    2 l2 H2 y- P! m
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";7 A8 o# `* M, q- l
  12.         local j := loadLibrary(file);
    . E. i0 F: M3 |* i( Q( J) a
  13. 1 Y7 s9 J' i( ~0 q# c8 L$ p: R
  14.         if j > 0 then" w& U9 Z; {; F. I6 N
  15.                 print getLoadedLibrary(j)," is loaded.";. x# D( j% r4 Q' M1 M9 t. {
  16. ' n6 g& ^  O! W& ]! R; B
  17.                 r := callLibrary(j, "calcSin", PI/6);/ B$ Y( Z3 S- I# }# o0 E
  18.                 promptmessage(to_str("sin(PI/6) = ", r));) C) ~$ {' R6 ?
  19.                 - Y8 t- J6 P/ m+ x: c
  20.                 local str:string;
    3 ^) Y7 }( Y6 S1 ~* @4 B. ?& |
  21.                 str := "I'm OK!";
    9 x" A) P+ a2 l4 d6 u
  22.                 str := callLibrary(j,"resetStr",str);' [# Q! c% _* ]/ i+ T: R, [
  23.                 promptmessage(str);
    * o2 n9 T  ]; \' z9 L. _3 {' A5 V
  24.                
    & j0 O' ^" S7 L4 m
  25.                 callLibrary(j, "listAccess", Tablefile);
    1 p0 z. A9 Q! b
  26.                 6 z7 C$ [8 t3 v% W" ?
  27.                 print "Unloading: ", freeLibrary(j);9 C' u* W$ Q7 Y1 A
  28.         end;
    $ f3 j) e* \2 C6 C! Q. {
  29. end;
    . K: `0 m0 B6 d1 i% O& o7 R
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
) f& @, B6 {& w' {3 `
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
1 d) D+ s5 m7 L: p9 D' S
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。3 n& m! b- }# d" T! i5 m
注意接口参数传递。/ n0 r) n) Y& A  n

$ `% g  v; i3 K7 r感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
2 j- S, p7 @8 u8 \: w  ~不明白你为什么需要调用C++程序,正常是不需要用到的。

5 u7 N1 Y4 Z6 C6 m. z5 P就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
( s0 t( t1 k4 T# I- u; Lplant自带的例子里面有教你方法,你好好看看。
$ J9 d* ~( W9 Y# D
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 11:19 , Processed in 0.031491 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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