设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6777|回复: 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 # T6 x/ d; n0 n# P4 w& D
应该不行吧,这是系统自带的语言,和C不一样

: F% Y& [8 r1 V% o* V' M好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 , c  l' v' T5 t, _+ V0 p
可以调用C++。

9 }& M% v/ A4 N3 W$ {7 v, y请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    * F3 R/ d; L2 A. [" v' b
  2.         r:real; file:string;
    2 ?" z7 f) {1 N, t2 ~. X0 |
  3. do3 C( E) P" z- z4 c+ k" H
  4.         openConsole;2 t1 L1 E/ p- |+ k

  5. ) R% k3 \* j* k# e6 _
  6.         /*
    . |1 H6 X1 f% h4 U  n5 j0 i7 j4 Z2 w. k
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",- t# N5 `6 W! ~7 \' @
  8.                                    when is64BitApplication then 64 else 32,
    , C! m, G# ]. P  d+ h
  9.                                    "bit.dll");
    2 [9 }) u7 }: p3 r2 q
  10.                            */& f0 k' X0 X& ^9 \/ M* P4 s
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";8 {/ Z* s2 {. I% S% O  a
  12.         local j := loadLibrary(file);
    1 w5 W) `" z/ V8 b

  13. 7 G1 X- N: E5 X9 ~
  14.         if j > 0 then
    ( f" }' k2 q! T' B. U/ l
  15.                 print getLoadedLibrary(j)," is loaded.";
    # [8 L7 l& t$ {" F- @  H7 V/ V

  16. 8 z6 Q$ T( P& C% h% W
  17.                 r := callLibrary(j, "calcSin", PI/6);
    + a+ {% |2 ?0 \' \; m: Y
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    ( K& `8 E; [# M
  19.                 ' e+ N" h  [0 b/ y$ _4 Z
  20.                 local str:string;0 d% F0 ]/ V2 ^8 e% K5 a/ k; o
  21.                 str := "I'm OK!";/ l7 V5 ^  m2 l, B! Q
  22.                 str := callLibrary(j,"resetStr",str);
    . \8 ^5 `! O; w
  23.                 promptmessage(str);
    ' c3 \) O/ K1 e( J" ]
  24.                
    ' N9 _; R2 I/ ~+ o2 n: A/ t4 w
  25.                 callLibrary(j, "listAccess", Tablefile);
    % i5 m) w9 u3 l  }6 d
  26.                 # P4 b1 p% D: H" u
  27.                 print "Unloading: ", freeLibrary(j);
    7 t  Y8 f$ u$ ]" C/ b- E9 N
  28.         end;9 Q  W% P& }- o( S" G! `1 h! f
  29. end;
    ( `0 `% L) J7 j5 n7 v9 o
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12
, ?6 V; ]+ S- b5 j& P* g; O+ W
不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
* j. W+ y5 d  Q) H
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
% b- ~- }" n* b4 G( g* Q注意接口参数传递。2 X# _7 f/ s% }
/ X1 l8 i- C$ x2 N9 x
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
8 d, g4 m+ i6 u7 m  L) v2 y! y( {不明白你为什么需要调用C++程序,正常是不需要用到的。
- J; ?1 ?( n1 ~/ u( F; c* i0 ?
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
  z, b  B; W6 N7 a/ rplant自带的例子里面有教你方法,你好好看看。

7 ~% K) q: H6 q; O哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 08:03 , Processed in 0.018580 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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