设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6574|回复: 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 * D# I2 P0 P$ J) H7 p! J& f/ [) L1 i
应该不行吧,这是系统自带的语言,和C不一样

; c% E- d7 x0 C( g* v好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 + B6 C* p* K5 m8 s2 ]7 j& Q
可以调用C++。
/ _+ l$ P, ^, ?% n5 S
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is" o0 e' J: X! Z5 O
  2.         r:real; file:string;$ q0 y$ K$ X3 W# T
  3. do
    & U. w9 h5 O1 @2 \, d+ U! W4 G
  4.         openConsole;3 y. s" Q5 P- S

  5. 8 P& B9 j5 h+ T! R6 j6 l
  6.         /*9 F/ p  p3 x3 w) f0 E% v, ]; U; }2 Y
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    + d7 \, l; z5 K% r) \* j  h
  8.                                    when is64BitApplication then 64 else 32,
    . V- L0 W2 j% {) V. Z$ O8 K9 z" ?& B
  9.                                    "bit.dll");
    $ d! l! H+ A8 d1 D& ~
  10.                            */" [" j+ G' v6 \4 H/ ^
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    * k$ }$ x9 E. G# X; h( v
  12.         local j := loadLibrary(file);0 q3 R# R4 G% {3 q. s2 w- f

  13. & D$ E6 T, a9 ~& P( i0 _! A
  14.         if j > 0 then
    ' c! M0 a! b5 c; E- c' z  I) i
  15.                 print getLoadedLibrary(j)," is loaded.";& g% m; n$ a) A
  16. " ]6 o, f% B# D2 Z9 f# w) k! r
  17.                 r := callLibrary(j, "calcSin", PI/6);$ l$ @/ ~2 x5 Z$ N) R. n
  18.                 promptmessage(to_str("sin(PI/6) = ", r));1 `: [- Z- n2 X; S
  19.                
    ; _( X9 L, u+ q- [" h
  20.                 local str:string;
    % u/ o% K+ c! o- w
  21.                 str := "I'm OK!";
    : ]  q9 ]2 S0 u) h
  22.                 str := callLibrary(j,"resetStr",str);3 g& f! @: I, X6 I' }5 D6 K
  23.                 promptmessage(str);
    # g' j) B% A3 S6 Y& c
  24.                 / F" l$ s; a# N- {9 W8 y1 ?
  25.                 callLibrary(j, "listAccess", Tablefile);4 C3 `" y# _3 P+ _8 K3 K
  26.                
    4 r. P: y7 E9 k: y8 f( F
  27.                 print "Unloading: ", freeLibrary(j);' I+ j" y% I, J1 b0 ~* y
  28.         end;
    $ S+ D! _8 Y# b' V" K# }, H- c
  29. end;! K- l& J: c, X! T# }8 a
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

: }& l- m- Q; v& [/ ~9 P; Q不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
% l5 ^7 c& U) P* v$ d/ K3 ?
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
/ s9 W3 f7 ?; i注意接口参数传递。
" `5 U0 P' O" P
0 [' M9 W5 a" g' [感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
; L/ e# o$ ?% }& W+ b+ K不明白你为什么需要调用C++程序,正常是不需要用到的。
( A' g8 j- C( b- ]# Z
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
. s- o6 h4 U+ ]" |plant自带的例子里面有教你方法,你好好看看。

/ i" P, U2 {* K0 R哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-13 01:15 , Processed in 0.017163 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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