设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5647|回复: 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 + Y) g2 u$ @" Y/ i! F  @
应该不行吧,这是系统自带的语言,和C不一样
+ w0 Z/ F4 j% G* B
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
9 g7 ^: Y/ Y: ^1 m* n, x$ c; a4 S7 b: Q可以调用C++。
# j) D* N; y" O- f# C
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is, x# O/ v, P7 N/ v3 o3 h
  2.         r:real; file:string;0 u9 Y3 s$ X0 a" a$ N
  3. do3 k- [# T; Z0 j2 l0 A
  4.         openConsole;" V( \/ x  q% G" t

  5. # V, a3 L5 m$ R. \" W/ f, I) m
  6.         /*
    " t# k' E! }0 U: A
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",9 k) h1 `7 o% r0 J) T5 u
  8.                                    when is64BitApplication then 64 else 32,; @7 J* u" E0 m7 S! E
  9.                                    "bit.dll");
    * r; @8 _7 T: `/ s6 O
  10.                            */9 H( T, }5 v, ~1 Z/ t# O/ y) I4 w( u/ g
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    7 ~5 s. F2 r% ^. q
  12.         local j := loadLibrary(file);
    & Q4 U9 z; P, t6 k, _8 e

  13. ( ?8 ~5 k4 d# d( v2 G8 P8 T
  14.         if j > 0 then" E' v0 D6 O7 V( ]  G, E4 U9 P
  15.                 print getLoadedLibrary(j)," is loaded.";; v& ~  D+ r/ G1 N$ Z( H7 \# H
  16. 6 Z7 l, y: W3 V, A
  17.                 r := callLibrary(j, "calcSin", PI/6);' \0 Z9 w% l% J* e
  18.                 promptmessage(to_str("sin(PI/6) = ", r));3 x1 Z7 ?2 j( f0 ~2 T. Q0 o
  19.                 5 Q6 E. O# ~6 n4 _2 M# K0 m, f
  20.                 local str:string;
    . |5 e9 N) x' m; {8 x! ^1 L1 M
  21.                 str := "I'm OK!";
    * u+ X/ {1 l8 p3 M1 D; H
  22.                 str := callLibrary(j,"resetStr",str);, d! Q9 V. l4 B9 |7 q6 E7 ~
  23.                 promptmessage(str);% F! P( a0 u# E2 g7 l" W  ?$ r
  24.                
    . N, v( N) o5 _6 x* u$ \
  25.                 callLibrary(j, "listAccess", Tablefile);
    ( w; T5 c. ~2 Q# Q
  26.                 % X' i* q1 [% {. l% x
  27.                 print "Unloading: ", freeLibrary(j);6 i1 N2 M3 |' Y! O2 n9 X3 K
  28.         end;
    3 M) s9 {; l' h) v0 r
  29. end;
    . B/ b4 ]7 z2 X
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

) I1 h" R1 o- o- C! S( `不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
; X3 v; X7 s9 D8 ^5 x# L
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
2 s8 }1 S- z' u% y! T+ H; h2 o注意接口参数传递。
. v- T1 Q* ]  l: B, N5 l% y
2 i+ ?1 g/ a0 K感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 - o) \* P; Y! ]" |6 P7 }' a
不明白你为什么需要调用C++程序,正常是不需要用到的。

: M) T8 a. R' N' ^就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
# C! Q( E, C  c+ D. j# Eplant自带的例子里面有教你方法,你好好看看。
: Y7 P* ~  T( E
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-28 00:55 , Processed in 0.017099 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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