设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7908|回复: 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 6 ~5 o6 T" y* w1 B
应该不行吧,这是系统自带的语言,和C不一样

3 f2 V4 F4 a. G' e, j6 y好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
- w8 q/ ~0 p6 ^. m, |+ i' e0 `可以调用C++。

2 {' l8 ?. b% m' D请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ( z6 ~) [5 S, u8 J. V3 I  u
  2.         r:real; file:string;
    ' h/ z5 F! T  o8 I1 E8 K0 z
  3. do- v2 Q8 X0 I, [, s- W% D5 m6 L
  4.         openConsole;
    4 G! K1 l3 q, \0 M& M$ Y5 j# A

  5. * \; y; Y! P- M6 I! b& d
  6.         /*6 ~6 i6 W; P! H6 A+ ^0 m# I$ J
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",/ [  z$ W6 L9 r. P/ Y/ P7 ~! J3 L
  8.                                    when is64BitApplication then 64 else 32,
    $ i8 M8 G) F( v1 K
  9.                                    "bit.dll");
    1 w" {' }5 P* y8 o% P
  10.                            */2 `; z0 J5 d+ |  S
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";- ^6 e. [/ X  x# }! X$ x2 G% _
  12.         local j := loadLibrary(file);
    8 n: d! Z3 X+ O( V4 r! ]

  13. : `+ J# T' D0 N# S. D0 }" D
  14.         if j > 0 then
    " t1 [' Q4 _. W( S9 l- k
  15.                 print getLoadedLibrary(j)," is loaded.";1 ?; ^- A1 r0 ~& H! R
  16. / B. |, n$ z& \  s+ L4 k8 i
  17.                 r := callLibrary(j, "calcSin", PI/6);
    + K. ^2 q) w$ ?
  18.                 promptmessage(to_str("sin(PI/6) = ", r));3 [8 C/ O9 D+ k* Y1 \% n" }% s
  19.                
    ' g) e4 ^! u4 g! h+ u, f$ u
  20.                 local str:string;
    1 H9 {) Q4 W+ d
  21.                 str := "I'm OK!";0 L9 g* I8 o/ O
  22.                 str := callLibrary(j,"resetStr",str);
    & p3 d) U  I! i" H- v4 Q
  23.                 promptmessage(str);/ F3 V; }4 Y# M" v9 u5 {3 Q
  24.                 6 E/ K( A) b% U$ h8 @$ J- H0 i
  25.                 callLibrary(j, "listAccess", Tablefile);
    $ J( j4 k4 f. V9 Q' g
  26.                 8 u" p5 ^, G. z& Z
  27.                 print "Unloading: ", freeLibrary(j);
    * @+ T$ n2 S. N; {: V6 H, N
  28.         end;& e: U+ g$ \+ k. \' p" {
  29. end;
    ' C  Y$ L5 T! i: x" t
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
& f* G3 w, _; o9 j. Y2 O/ m
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
6 i( z5 R. m- `8 z) v
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
) G6 {) u. q  ]3 k' [注意接口参数传递。
. ^: |7 y- n! D' s: ]! y7 Q6 y1 H
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 + j- Q0 G& t4 j  V9 r. N4 W
不明白你为什么需要调用C++程序,正常是不需要用到的。
8 O) C' _. j! V, @' q' j: {3 }
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 & q& W5 E+ S# Y) q4 y7 u
plant自带的例子里面有教你方法,你好好看看。

. P5 N% i  X% h; Q5 @! t哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 03:39 , Processed in 0.019237 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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