设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7864|回复: 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
  h8 C2 i: R& I0 g' ?  m应该不行吧,这是系统自带的语言,和C不一样
' H4 m0 }) T6 G" @. |$ B
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 8 l4 x2 V/ n  C' [6 c1 Q
可以调用C++。
  ]9 |! ^9 J6 b
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    1 F1 b6 m) r# A/ ]
  2.         r:real; file:string;6 V$ }4 h+ {6 ]3 Y2 D# X
  3. do8 X7 M3 J& U3 o% _" H
  4.         openConsole;% Z) s" B- t8 ^- O5 T1 l6 ]
  5. ' e( ^7 Y/ x. b" Q7 e; i! t
  6.         /*  i1 w0 v% ~) _! C3 y" r! t
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    ' l9 G" j! A) ~" P# ?3 D; T
  8.                                    when is64BitApplication then 64 else 32,$ Z* F* }% N4 M4 a6 p/ O! Z) |' J
  9.                                    "bit.dll");
    & Z/ [5 f9 m- f/ K* R. x% m) z3 _
  10.                            */8 f! B  A, l1 M- |' m
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    7 y, M. n, k, C, ]
  12.         local j := loadLibrary(file);( A% w/ d' }# `  w

  13. - Q+ s1 z! }4 b& u6 I# ~0 d# o
  14.         if j > 0 then
    6 s/ [% m  s) U; ^2 @
  15.                 print getLoadedLibrary(j)," is loaded.";& b" L4 m0 I/ n5 X

  16. - G8 f$ a' D) Z2 |  S1 h
  17.                 r := callLibrary(j, "calcSin", PI/6);
    , E* q4 k  f- E
  18.                 promptmessage(to_str("sin(PI/6) = ", r));2 |) z7 p$ u( M* Z! N: h
  19.                 4 C/ O! P! }- d
  20.                 local str:string;) q6 i% @; H4 `2 P
  21.                 str := "I'm OK!";" E" y$ V6 O& v+ g, j# d
  22.                 str := callLibrary(j,"resetStr",str);
    ; v+ F" g7 q" k. j4 `: W& w
  23.                 promptmessage(str);
    5 l" \2 c( o; A: v# ]6 `0 o
  24.                 - ]1 y) I% {5 r/ [* O8 W
  25.                 callLibrary(j, "listAccess", Tablefile);( {7 A" }# |1 S) r# @9 s+ y
  26.                
    " P: b; O' z' R$ P
  27.                 print "Unloading: ", freeLibrary(j);
    . Z8 h9 E7 k( N& \' \9 _" l  S
  28.         end;7 ~; d' A+ D$ Y% v1 a
  29. end;
    1 W! V) x0 X8 X3 e7 Y
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

, E# B7 Y9 e2 A/ W4 v: _7 U& G* b: N不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?; r- n  g( W+ z% X- }
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
8 }/ Z' h# m; ]; b. C2 \注意接口参数传递。
; I' J1 i# B- m" e9 D
2 Q+ \1 s( x  e; N! n9 O5 G9 b感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 / A4 z% G/ |' ?# y  a% {6 J
不明白你为什么需要调用C++程序,正常是不需要用到的。

' l7 Q% N# ~; I+ c( E! p$ y1 O% ^就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 3 o5 s; g3 n; `. p4 M  t) h* b
plant自带的例子里面有教你方法,你好好看看。

  u- I1 S4 l. ]) l7 J; W1 h& o2 t哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-28 11:02 , Processed in 0.017822 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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