设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6862|回复: 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
" }$ s  W  g) O! G9 Z7 ^* ~8 u/ j应该不行吧,这是系统自带的语言,和C不一样
) I2 p$ w0 t0 Y5 S7 V* `$ I
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
; x& C& M* m* C- M# T8 b! h3 H可以调用C++。

7 a8 M, b" D4 l4 a4 ]请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    3 R! `& [5 z  Z! i6 ]
  2.         r:real; file:string;1 c3 N* J4 T6 o2 t' e' D% i
  3. do5 ^0 J! z, |0 _3 D; u
  4.         openConsole;
    4 p# X6 g) @0 b+ r8 Z/ }( t

  5.   C# |, Z+ ?4 W7 B! W  a
  6.         /*& m% t* \, M- N/ M+ a2 r  K- Q
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    9 v$ Y3 l- l- q' M0 W" i, `
  8.                                    when is64BitApplication then 64 else 32," R! s1 a3 e) K& L- C) m
  9.                                    "bit.dll");8 a% a. g0 U' X5 I0 P9 Y0 D
  10.                            */
    . C! ?- B- K2 n4 w+ J. G7 {: i, [0 V6 n
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";) V, c6 v1 [' M
  12.         local j := loadLibrary(file);
    , A, z& d2 l( Q- X
  13. 2 o2 l5 ^4 B3 S
  14.         if j > 0 then
    4 s. [1 t$ z  |( k; x
  15.                 print getLoadedLibrary(j)," is loaded.";
    7 Z( M2 A! f6 L. l

  16. $ [2 o/ D% `" `. A" W+ _3 j0 w
  17.                 r := callLibrary(j, "calcSin", PI/6);% s8 @0 v0 _5 b9 V$ e  |
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    , z. U" ^9 b0 o# R
  19.                 / y: U6 l, J3 q" D# U
  20.                 local str:string;( g  t9 O- i( ]$ }$ O
  21.                 str := "I'm OK!";
    & f, x; C5 R+ b- u
  22.                 str := callLibrary(j,"resetStr",str);( Z7 c4 u% D7 y' ^+ y
  23.                 promptmessage(str);
    1 x0 G4 m) C2 w
  24.                
      y+ ?  v  Y- J
  25.                 callLibrary(j, "listAccess", Tablefile);
    & \/ o7 P% W) A" j( v/ \. w' x
  26.                 5 E$ B, m$ b  Z' U/ g# ^& g* z
  27.                 print "Unloading: ", freeLibrary(j);
    4 S+ A- D% l* e! ~* j) ^5 ?4 v  `
  28.         end;7 c% d) L4 d. M  {4 X+ J8 X7 H
  29. end;
    6 P9 b& W" H; W) {  g3 K& e
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

. O4 @- [' n( I& s# v不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?; V, |3 T( N' V) \
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。" V. R/ z- C1 J1 L( A, f5 E
注意接口参数传递。
4 O; j. ^" p- Z' K1 r) K
* z6 X7 ?9 R3 W感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
: F4 l$ c5 `+ O9 F不明白你为什么需要调用C++程序,正常是不需要用到的。
8 j5 m8 y7 k8 O- B
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
% ?$ V7 ]9 _; J' Uplant自带的例子里面有教你方法,你好好看看。

' ]8 y4 \  F! O- D* Y4 k哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 23:33 , Processed in 0.022705 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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