设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6860|回复: 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
- E) Z, P' p' P8 y% ~应该不行吧,这是系统自带的语言,和C不一样
  `9 F7 b" Y, y: E2 N
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
, r9 _( M' z* W" E2 M可以调用C++。
) G) H- k( w3 b4 n* o1 @' |
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is$ n0 @4 @7 B9 O5 s& U1 z# ]
  2.         r:real; file:string;- Q) C9 p( U# E" r/ k, g
  3. do* U- a) D& B$ z" C' }5 m
  4.         openConsole;
    9 g1 |# O/ k1 d+ K' ?; b( j8 @7 E
  5. ) ~1 c- W  q" W- b9 o
  6.         /*# O* k5 L' ?* Y
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",4 W; n! A7 K, R9 b) D" x+ D4 R
  8.                                    when is64BitApplication then 64 else 32,
    ' f  F3 n* U# |" G' V* Q" h
  9.                                    "bit.dll");
    1 i) Q- {/ O! H0 w
  10.                            */' M$ G, F2 M; X8 U
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";; {7 ^. N7 c! z+ a9 b3 j
  12.         local j := loadLibrary(file);
    + E! @! A5 ]; T0 T, V
  13. 0 r. R3 P% A$ x6 p( U
  14.         if j > 0 then5 I  E5 W0 z# o# i9 r8 H+ t
  15.                 print getLoadedLibrary(j)," is loaded.";% ]+ A! E6 V! Z1 H# ]0 x/ V: |

  16. ( Z- v( O) H/ d
  17.                 r := callLibrary(j, "calcSin", PI/6);
    3 i* {! F: m* P
  18.                 promptmessage(to_str("sin(PI/6) = ", r));" @- k6 s5 U9 V) E8 B
  19.                
    4 U& m6 Y% p; \0 n
  20.                 local str:string;; e& I5 J) k; V
  21.                 str := "I'm OK!";
    " C, |/ Z' u1 N1 U) J
  22.                 str := callLibrary(j,"resetStr",str);# q, z2 z# c7 \4 ]: V
  23.                 promptmessage(str);
    ) r: x. \" S; N; }. b( \' D7 I! e
  24.                 5 y. X1 v. _. r; `
  25.                 callLibrary(j, "listAccess", Tablefile);
    ( m: `/ U" w" k( D# u, @8 D! v4 `
  26.                 # J3 x: p3 @' M, h% n+ j
  27.                 print "Unloading: ", freeLibrary(j);
    ; W7 ~. t8 V! c" V4 N
  28.         end;
    ( N5 J0 I! [9 z" S# C
  29. end;) o# `0 [. }3 b+ K9 `
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
; B* ]+ R+ ^$ T- J
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?1 a- M1 V" G8 e6 L
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
9 {! E+ k% I4 @& p: ~- L注意接口参数传递。
) j; r# G  o8 @) T0 q) ]) N  f. _3 d' q1 h' k
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 8 l' `+ L' b$ E* {
不明白你为什么需要调用C++程序,正常是不需要用到的。
- E( a, j7 l/ p/ {  _- O2 a; ~: @
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 & a1 Y- i; i8 C  R, R4 G: N
plant自带的例子里面有教你方法,你好好看看。
. j  i, ?$ m6 W+ X
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 12:57 , Processed in 0.025597 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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