设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7549|回复: 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: k' r: R% Z- v. s应该不行吧,这是系统自带的语言,和C不一样
& D) J9 r( M" @1 o9 `+ t  m
好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
& X4 x3 S7 F* g" x8 D* L可以调用C++。

4 q: H+ w) S: ^- h* E6 p- |请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is
    ' _% _4 l# o$ r& e
  2.         r:real; file:string;
      E9 }# k0 a- ^
  3. do- E4 V/ s7 `# h" ], u" A
  4.         openConsole;0 q9 K( H7 _1 j+ W2 k7 @1 \/ X
  5. 3 E. w6 `2 Z) i6 ~" U6 F8 y
  6.         /*
    8 w$ [! G' x6 a1 K
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",
      J4 j% ]: t$ I# O) n, s3 B9 ?
  8.                                    when is64BitApplication then 64 else 32,
    9 G* |& j8 g9 ?, \0 }- H+ {
  9.                                    "bit.dll");
    - \3 |  _$ S7 Q
  10.                            */+ D. N% W: N5 u' q% b$ N
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";" N3 q7 N+ `( f' V3 q  K0 L
  12.         local j := loadLibrary(file);+ b/ C! w! O" p8 d% k! r
  13. 3 Q( |8 U" T; s
  14.         if j > 0 then# o7 |" |; R# F9 m6 D* A+ ?1 v+ `; R
  15.                 print getLoadedLibrary(j)," is loaded.";* Z" W* g/ Q1 C' x6 e9 w6 b
  16. ( `" I; J. v1 {* Q1 E7 Z
  17.                 r := callLibrary(j, "calcSin", PI/6);8 g: c- b# I6 }+ Z* J
  18.                 promptmessage(to_str("sin(PI/6) = ", r));
    5 y0 q3 A  T2 L$ S) o: B
  19.                
    1 y% d' O1 |' Y
  20.                 local str:string;5 S3 x7 ~. W% A( @- Z
  21.                 str := "I'm OK!";
    ! ]" A% I6 [% Y2 d
  22.                 str := callLibrary(j,"resetStr",str);
    - j1 r9 H  Z  {2 ]  J8 T
  23.                 promptmessage(str);7 v/ Q- x+ L  i  ~/ I! M
  24.                 2 [6 b/ q6 ?# G1 |. d/ m3 D
  25.                 callLibrary(j, "listAccess", Tablefile);
    2 {9 i/ q& t5 q+ q( d5 _/ N& [
  26.                
    8 [" O. Z: N5 w) v6 k" l
  27.                 print "Unloading: ", freeLibrary(j);8 A$ [( x4 l2 ~( \  t* t
  28.         end;6 W% \2 ^. a) [/ A2 n
  29. end;
    + F2 D4 h$ n. }! L8 g; A0 a2 H0 ~0 e1 v$ s
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

8 G$ i; m) F5 k+ v/ U" M不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?( E) g& v, \$ C% t" A# r
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
+ G' y5 U0 F# d7 {注意接口参数传递。0 ?$ r% h8 I) N% a( Q: D; T" s
0 l7 e) v9 a" }" ^! ^
感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39 + t9 q+ Q8 j* ?
不明白你为什么需要调用C++程序,正常是不需要用到的。
7 G( g& Y- p* _( a  M# `
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17 - ?: [" E) }+ T# X9 k. V
plant自带的例子里面有教你方法,你好好看看。

3 y# U' {/ Q  H$ {8 I哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-1 14:45 , Processed in 0.016224 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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