设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4500|回复: 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 ! U5 l/ G# M) t8 L
应该不行吧,这是系统自带的语言,和C不一样

2 l, }. v+ Y6 ]' T好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 9 e$ R) @" q* D/ A4 d
可以调用C++。

8 b0 r( `8 {# f" {- N请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    $ p" i2 H7 L- |  `) \6 F
  2.         r:real; file:string;
      O# U$ i" u" z
  3. do8 x9 {9 G1 S! c" S! a0 z0 B4 S7 k
  4.         openConsole;0 y% p7 s$ g5 v0 T7 Z; @) o

  5. 7 G4 S1 S# ~# z: M: ?7 x/ h1 X8 q
  6.         /*
    , ?9 L, O' w7 e$ ?3 q7 l+ \. l
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",/ u7 i' G& Y+ p- T) n! D& l
  8.                                    when is64BitApplication then 64 else 32,. l/ z/ ]( d6 h. c6 h% l
  9.                                    "bit.dll");0 x- L% [# T& S, _" P
  10.                            */( f, M4 a0 Z" a& o% p3 b
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    . M. Z5 ?9 Y' \
  12.         local j := loadLibrary(file);
    ( e, }* q/ d$ }' A- |( N
  13. ( ~( A7 B7 l1 X! |
  14.         if j > 0 then; r9 S8 `$ d, U" v7 j
  15.                 print getLoadedLibrary(j)," is loaded.";( ]4 o! J5 j* c( s) q$ b

  16. / Q* e/ u. H2 @; U
  17.                 r := callLibrary(j, "calcSin", PI/6);. W( w  ^( i6 M1 i: Q& S/ {+ K
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ' j2 s# Z5 J0 \3 ]
  19.                
    " w/ b9 W5 n5 c+ U. j
  20.                 local str:string;
    * A1 @- L$ q1 ^) X
  21.                 str := "I'm OK!";$ [- R& m7 o7 `' j+ b) Q/ C: j$ J
  22.                 str := callLibrary(j,"resetStr",str);
    + W& L- p5 |7 I
  23.                 promptmessage(str);/ Q' o* `( r- C8 s" k! p
  24.                   l% r, v  E- W; U; f% L
  25.                 callLibrary(j, "listAccess", Tablefile);
    . `9 R% |0 n2 ~) V: m
  26.                 * ?. l9 K9 U% g, }
  27.                 print "Unloading: ", freeLibrary(j);( G3 ~5 y  |8 X; _2 ^0 U$ a, t& Z
  28.         end;
    3 Q" g! y& d7 P. V: P# Z6 p1 D
  29. end;) d5 Z& T  K% |, ~; k
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

( `; ~/ [9 F8 C/ F! v: W1 T不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?7 I# a. F5 g: F3 L
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
9 |# ]: a9 Y7 E0 k; A注意接口参数传递。+ f* B5 b8 ~& z) ~
6 p: M4 I1 A( X8 n
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
) r$ u3 K+ t" B  o) C( ^, x不明白你为什么需要调用C++程序,正常是不需要用到的。

! c; n( G# a! {# e$ n- k8 X# y! x0 w就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 5 n" ]1 ]# h# L$ @, t/ g/ y/ f
plant自带的例子里面有教你方法,你好好看看。
% o0 ^0 N! H+ B4 _2 H" ^! G# U
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-19 06:22 , Processed in 0.021577 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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