设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7147|回复: 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 9 h5 f& L- p; n: j/ k! n; E
应该不行吧,这是系统自带的语言,和C不一样
, G- W' V  i% J0 A
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 " M, D. r8 r1 j6 z; j
可以调用C++。
% n1 T2 l) n8 i# ]- g' D! h7 B8 i0 B
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is. W" G/ t5 K  ?- |* f
  2.         r:real; file:string;
    - |8 w( D# a3 o; n; z, g
  3. do
    ; J* o! G' @6 ^/ u3 b
  4.         openConsole;7 t% Q# Y( B! g4 u, |
  5. 4 ]* T8 Z/ v. ?- ^8 r/ d
  6.         /*! @( Q; z8 v; f
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",0 |' |0 @6 E+ P/ C
  8.                                    when is64BitApplication then 64 else 32,
    : f+ c$ k/ p# ], L2 S- f
  9.                                    "bit.dll");
    ; p' J, _. E) s# ^  \( U0 N
  10.                            */6 J: d& W$ g! p' Q, t/ M
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    % D% z7 {. c8 z" }" s2 n4 ]
  12.         local j := loadLibrary(file);
    6 `/ j9 |) V' _" b$ d# y

  13. # D& Q. M/ w- n
  14.         if j > 0 then
    ! B, s: |2 \; ?  v" y! a. e$ ?
  15.                 print getLoadedLibrary(j)," is loaded.";
    % e( y; T% I+ J

  16. " k, ~7 H( ?4 S8 Z6 u
  17.                 r := callLibrary(j, "calcSin", PI/6);$ c+ t7 a1 Y% e
  18.                 promptmessage(to_str("sin(PI/6) = ", r));2 b) U- l/ }! k  k  U  k
  19.                
    ( W4 c- o8 B# n/ Q
  20.                 local str:string;- I: |. U6 N* G3 x7 U
  21.                 str := "I'm OK!";6 h4 V% l8 L2 m, ~
  22.                 str := callLibrary(j,"resetStr",str);; ~+ m9 n* c* l1 g+ Q) U
  23.                 promptmessage(str);
    6 |# `" i# U* y& T
  24.                
    : h, n4 k8 y7 p" b9 F3 S/ q
  25.                 callLibrary(j, "listAccess", Tablefile);
    , h8 s- J' `" E' I2 l3 r
  26.                 ' Z& x8 j& v3 `1 L2 Q* p* d
  27.                 print "Unloading: ", freeLibrary(j);5 Y0 {( D  c% V# y* h
  28.         end;
      q& N$ g3 O) G
  29. end;; R  s: w9 U& e: q9 O
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
6 O+ Z/ R# n5 V: }6 ]$ P9 F$ {
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?3 u! [& \6 N4 X) V, Y4 _* }! Y
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
4 }* R4 g& K' {0 S4 q) l注意接口参数传递。) U8 P. L1 E' @" O. E% g" ^9 I+ D
* ^' `- g9 D' f7 `+ D7 ?( x6 Y5 ?
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
, Z& `! R* [) Y" k3 G不明白你为什么需要调用C++程序,正常是不需要用到的。

. C  i5 _2 b* A* b$ l就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 ' B! @4 ~2 X2 z5 @* R) B
plant自带的例子里面有教你方法,你好好看看。
" B& z& ?8 h+ b6 q% N0 W& u3 e* }
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 13:22 , Processed in 0.024952 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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