设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7335|回复: 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
$ ~0 J& @( ]/ o$ G  @, F$ z. t应该不行吧,这是系统自带的语言,和C不一样
  y: J! E  C5 r, |3 d; D% g
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 & K% L4 s* m: X7 p. ~% s
可以调用C++。
9 i3 \, V1 F  u# Z0 z2 K
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is2 ]/ }; p. U: u- [( }
  2.         r:real; file:string;
    9 v- Q" y: h( _, H& i
  3. do9 e: S$ ?) N& K3 e( q5 x% d! e# F
  4.         openConsole;
    $ }9 q. G) L# B7 \9 S# ~

  5. , z: N% \1 {- p! [% \7 _
  6.         /*
    ( v6 y7 z& x% U4 Z; a& v
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",9 o( n4 h2 z% m) ^3 u8 ?& Z5 X( j
  8.                                    when is64BitApplication then 64 else 32,8 y6 Y+ J, Z9 G- f8 n$ w6 z
  9.                                    "bit.dll");
      w$ g+ K, y1 ~6 i! \  ~
  10.                            */6 `* ]$ C! i* |4 K
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";( |6 j4 T7 u8 `# V5 j& k
  12.         local j := loadLibrary(file);( N" j( w, n+ o# l- R2 m3 i

  13. * u# P' E0 s7 o0 N+ s6 l/ i
  14.         if j > 0 then* h. k) E+ q# R) e
  15.                 print getLoadedLibrary(j)," is loaded.";
    6 n' Q/ }1 m) @2 H: K
  16. - q! l: h0 r* e/ n! i6 E. p. U
  17.                 r := callLibrary(j, "calcSin", PI/6);
    . x) R  j/ P5 W- `1 y, {
  18.                 promptmessage(to_str("sin(PI/6) = ", r));& w! a9 n. _  \8 M0 B7 e
  19.                 ( M( s4 H( U$ s- `" v, Q
  20.                 local str:string;1 _# j8 n8 l1 K6 |3 t
  21.                 str := "I'm OK!";% V4 ^: n1 R$ S6 {
  22.                 str := callLibrary(j,"resetStr",str);
    2 Y3 ~6 t& H. ^6 z3 l
  23.                 promptmessage(str);
    : v3 x1 `! Q& N8 p, D, A6 y' M
  24.                 * L8 }( a" A2 n* C9 K
  25.                 callLibrary(j, "listAccess", Tablefile);
    3 |+ G, M8 m' R& s
  26.                
    ' _- k9 |' p2 D& p, |) _
  27.                 print "Unloading: ", freeLibrary(j);
      ]: {% u  e8 M" \% U+ L! f
  28.         end;
    ' n$ E# s- k3 U9 i2 ]/ w
  29. end;+ f" D7 C  l% `  W! i# b
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

2 I4 u% t8 s% N9 u1 D: f3 K; C不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
6 Y% W- F3 v# `8 _& k: j& P& f
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。- o& C, j$ e  C7 x" E' T. y1 D
注意接口参数传递。
, W! [% t4 t8 P) \1 n
  [8 `% P: ~( t) y% I7 N, p感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 5 e2 J  q0 d+ w2 [5 F( d
不明白你为什么需要调用C++程序,正常是不需要用到的。
) {! s. {* }# c2 S6 k. O
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
/ @( i$ k6 X/ s3 h  w' i4 n/ X  Hplant自带的例子里面有教你方法,你好好看看。
& w% i# e" v1 F3 G0 b4 B( i  h
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 21:25 , Processed in 0.021028 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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