设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7232|回复: 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
' m# E$ q0 q; P: E: a* T9 C, m8 h应该不行吧,这是系统自带的语言,和C不一样

' A. S' c* Y& P; h& y1 B9 {好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 ) U( M$ t, ^1 n. J
可以调用C++。

8 ^- k4 O/ I  F* o( Q* d+ D请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    9 I2 A% q! Q! u$ ?
  2.         r:real; file:string;5 H" F; D8 @9 _7 Q3 s* m
  3. do
    3 n3 x6 Z1 F/ ]+ `, T
  4.         openConsole;4 K1 N6 @, {' {( S, H/ H3 z4 D

  5. - ^9 o( O. Y- |, W. }. N3 j6 t
  6.         /*
    , W4 T: b$ z" O5 D
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",  J0 j* s" r  N6 Q' [+ e: @! }. {
  8.                                    when is64BitApplication then 64 else 32,
    , h/ z6 s! ~6 ^. x4 d* L; z
  9.                                    "bit.dll");
    / ^: g8 X" G5 k, V. y/ o3 L6 K
  10.                            */
      i8 t( b# D2 r  M8 Q* ]+ f
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";* J* }: L: _; S) Z& Q. K/ a
  12.         local j := loadLibrary(file);! Z# v2 ^! R  k8 g- i/ D' D9 S0 K3 h

  13. . C# V! \8 F6 `4 d6 j1 G
  14.         if j > 0 then: L  c, e! u, z0 J
  15.                 print getLoadedLibrary(j)," is loaded.";
    # x$ E! ^7 q" r/ h/ r/ _

  16. 1 i4 f# r4 V, a6 a
  17.                 r := callLibrary(j, "calcSin", PI/6);) T+ a2 O, }0 X- ?1 k6 m+ k7 z
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    1 c. v# B1 b" X- u$ E* K1 L5 i% A* m
  19.                 3 e6 k& e) Z; x0 Y7 \; r
  20.                 local str:string;6 H* |% x2 R2 C$ u9 ~# l
  21.                 str := "I'm OK!";9 y3 K4 S# d4 ?7 I% Y! B
  22.                 str := callLibrary(j,"resetStr",str);
    8 \  O$ N- z. k3 h4 e( p- Z
  23.                 promptmessage(str);$ m- w& o1 c( b7 m1 J- u% A5 _
  24.                
    7 c8 ~5 ?3 X- a( C' I
  25.                 callLibrary(j, "listAccess", Tablefile);
      A! I1 s6 S  w
  26.                
    % d5 p1 n3 {/ k
  27.                 print "Unloading: ", freeLibrary(j);
    . I7 H4 g) i1 r, R
  28.         end;
    7 i7 P) F8 G& C4 @( W
  29. end;4 K+ f1 E! [/ j1 U
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

5 d/ }+ N' T) C: O4 U0 d不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?: X, ]6 w$ H# @
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
+ [& L" b$ q% }9 k  L注意接口参数传递。5 N7 M5 ^0 C) O2 ]7 i% z+ D
! a3 A# ?# j' @9 t% O: ~- ]
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 $ C2 m' W6 o/ c/ Z0 y7 Y1 y# r
不明白你为什么需要调用C++程序,正常是不需要用到的。
; I4 s0 A, S- X4 v
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 ) E% Q7 e- G2 e
plant自带的例子里面有教你方法,你好好看看。
0 o2 g- H8 c& h3 o! S1 ^' @
哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 02:39 , Processed in 0.018544 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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