设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6942|回复: 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
& D+ e7 ~; I5 B) V9 P) w& Q# C应该不行吧,这是系统自带的语言,和C不一样
3 O3 v' [8 h# U- U7 ~9 i
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56 1 T  Q4 t% v5 Y+ f$ O
可以调用C++。

/ j0 _# n0 H' ^- \6 p) c+ {请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ( J' O9 L$ O  l: r
  2.         r:real; file:string;! v4 K3 |3 ^! ~  I5 P
  3. do; G) Y( ~9 s7 @3 i4 ?. ^0 q* z
  4.         openConsole;
    2 H  T2 i6 _- T4 M9 e/ u# x
  5. ) @. Q8 i$ e) Y8 `
  6.         /*
    ( [) }  c' I4 r9 ^- u3 H0 M
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
    3 l/ L1 T. t" l2 N* H& n; g0 p
  8.                                    when is64BitApplication then 64 else 32,
    ' W. z5 B! {8 W. F+ U7 s9 S. K, }
  9.                                    "bit.dll");& L5 }) T  r% N% Z  W
  10.                            */# l& s9 }, Y+ E: G& @2 O0 g$ f$ o0 ?0 P
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";
    . ]8 R% m6 s; y; u" P
  12.         local j := loadLibrary(file);8 \3 u7 A- g+ a0 {. [* r: [
  13. 7 t0 ~) u2 }6 Y+ y! ?( L
  14.         if j > 0 then7 a; k7 R, G- T
  15.                 print getLoadedLibrary(j)," is loaded.";  R5 W% [9 d' N! [# ?0 f2 e: w+ k6 L+ q

  16. 8 w/ R% h" s2 @2 J$ {4 Z
  17.                 r := callLibrary(j, "calcSin", PI/6);1 p; Y) M7 X* W) @2 I/ U. T, |
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    # _) I2 K9 j" m, U' b9 {( V+ ~
  19.                
    + n8 U/ }0 e; I
  20.                 local str:string;
    7 s% e1 N" w7 c$ C, V( n1 _7 ~
  21.                 str := "I'm OK!";3 ^( ~* E7 J. `' Y/ w
  22.                 str := callLibrary(j,"resetStr",str);
      j3 K& X( j' T0 M$ j4 [& y
  23.                 promptmessage(str);
    ! B4 O+ \2 s5 ^1 B, ^- B
  24.                   @  {; ~& |' {2 J) J, I; U
  25.                 callLibrary(j, "listAccess", Tablefile);
    ' r4 _+ a2 c# R, v
  26.                 ) }9 D9 _( C& k# K, [9 K
  27.                 print "Unloading: ", freeLibrary(j);
    " ?2 T( N. g6 w0 l' k
  28.         end;
    " D3 [6 |, J2 P3 Z2 F& \
  29. end;
    9 h8 o" ]- c; }2 m
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

4 s  a( h/ v  q% |& c不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?( h" a7 B. O1 u% C  y
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。; G( V! D6 X2 f( ~1 e' a1 w
注意接口参数传递。
# l5 i3 T9 [$ ]9 Q( M. U6 Q5 e) }9 M. u
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
% c: }2 S; {% Y5 U. |) ~2 k, H不明白你为什么需要调用C++程序,正常是不需要用到的。
) j* l! R) c  u( o) a/ J3 z, C
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 7 a0 J0 U% Y6 ]% I. s+ t( M) K% j: e
plant自带的例子里面有教你方法,你好好看看。

5 h- D9 W8 K; G哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 06:44 , Processed in 0.022696 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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