设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7599|回复: 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 . H- w$ D: Y4 X* ?5 @3 M. l- n! [
应该不行吧,这是系统自带的语言,和C不一样

. J9 q; @6 ~! u+ O' v% ^0 Y好的,谢谢
发表于 2015-4-16 19:56:47 | 显示全部楼层
可以调用C++。
 楼主| 发表于 2015-4-17 09:01:43 | 显示全部楼层
sefule 发表于 2015-4-16 19:56
- G( a! k9 N# x- k: Q0 \6 Y6 L1 f可以调用C++。
* S4 v; H. u# U  y
请问如何调用呢?求详细过程,另外C++程序结构比较复杂,显示main函数,然后要调用几个函数,请问要放到一个Method对象里还是拆成好几个Method对象呢?
发表于 2015-4-17 19:12:24 | 显示全部楼层
  1. is) m! S+ ?, m* c6 p# y* j$ r
  2.         r:real; file:string;; T% j, r  r( g. o
  3. do
    $ }" t3 x* \6 W; t# O
  4.         openConsole;
    4 ~. G0 W$ E6 K/ }0 q

  5. # L4 V( R; V' L; w; t; E8 f/ @& V
  6.         /*
    8 R5 {4 k, h' |# @$ |
  7.         file := to_str(ApplicationHome, "\Plant Simulation\C-Interface\cinterf",; v! \0 J; E2 m: T* F  V
  8.                                    when is64BitApplication then 64 else 32," n2 O$ ]  I- x3 n) {" ]. t6 j
  9.                                    "bit.dll");; y$ {0 a0 T1 _8 _% }2 v! c, J
  10.                            */0 q& {7 J8 u: J
  11.         file := "C:\Users\sun\Documents\Visual Studio 2010\Projects\sg64dll\x64\Debug\sg64dll.dll";! p8 Q  `0 U5 ]* Q7 A3 Q/ e
  12.         local j := loadLibrary(file);* n3 C# x5 Q* E6 Y6 t9 k7 r

  13. - b4 f. I: K3 T: p3 J% R
  14.         if j > 0 then
    " o, n" i; q, ~& z2 V: D5 \, ?
  15.                 print getLoadedLibrary(j)," is loaded.";. B, H' `% o/ W% O

  16. ) s2 W+ i0 [2 s2 C, F; r3 _9 s
  17.                 r := callLibrary(j, "calcSin", PI/6);$ x6 b1 b( ?4 g2 @/ x) y# q
  18.                 promptmessage(to_str("sin(PI/6) = ", r));9 z8 n! x. L9 i$ S- t/ ^* T5 ~
  19.                   N' r7 o4 }+ I
  20.                 local str:string;
    ; |) M& t0 K8 A$ V. p
  21.                 str := "I'm OK!";
    . q% m  j2 k% q2 \& y2 [* E5 X
  22.                 str := callLibrary(j,"resetStr",str);+ l8 E, y, ~" Z7 I* a% v+ _/ J
  23.                 promptmessage(str);3 Y4 G& s# l2 J7 h2 i+ K; C
  24.                 & @+ S1 w: Z7 t# b
  25.                 callLibrary(j, "listAccess", Tablefile);7 r% K, \3 r. H3 K4 Q! f
  26.                
    $ b+ W5 q' _9 ]
  27.                 print "Unloading: ", freeLibrary(j);
    8 o, l( l) b+ @+ i, q) j/ ]
  28.         end;3 r% b# s5 P; {( `
  29. end;( m6 |& |0 O- ]+ e. G/ f4 ?
复制代码
 楼主| 发表于 2015-4-18 15:35:36 | 显示全部楼层
sefule 发表于 2015-4-17 19:12

0 G: p1 e3 d3 M" c7 h不好意思我还是想问一下,就是在do里先输入C++程序所在的位置然后直接把C++里的程序复制到后面么?
) `2 Y# y) z, w7 h
发表于 2015-4-18 17:49:45 | 显示全部楼层
将C++生成dll,然后引入l调用。
% }7 _) s4 J8 e( J注意接口参数传递。$ I1 }# `% Y$ D2 {3 ]

4 A7 |% J! ^$ e6 d& u感觉你理解有偏差,是调用c++的dll。而不是CLR似的混合编程。
发表于 2015-4-18 20:39:23 | 显示全部楼层
不明白你为什么需要调用C++程序,正常是不需要用到的。
 楼主| 发表于 2015-4-19 15:32:35 | 显示全部楼层
dongshui8558 发表于 2015-4-18 20:39
4 P1 P" F+ ]6 {- y- Y& ~& K不明白你为什么需要调用C++程序,正常是不需要用到的。
& J* k( q8 V/ T$ j; U
就是我现在手上有一个算法,然后已经有了一个C程序,我想仿真一下这个算法,如果能直接导进去就不用编simtalk语言了
发表于 2015-4-19 16:17:58 | 显示全部楼层
plant自带的例子里面有教你方法,你好好看看。
 楼主| 发表于 2015-4-23 12:52:25 | 显示全部楼层
dongshui8558 发表于 2015-4-19 16:17
+ L& V1 k1 F; N# Jplant自带的例子里面有教你方法,你好好看看。

3 z, v% X+ ~1 x哦哦是《em-plant仿真技术教程》么?还是《plant simulation 生产系统与仿真》呢?麻烦提点一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 14:42 , Processed in 0.016124 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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