作者petrushka (不放过自己)
看板C_Sharp
标题Re: [问题] 引入dll之後函式传回参数转换
时间Sat Sep 5 16:09:09 2009
1.
我不清楚你原文的CommRead函式是什麽用途,
更不清楚它到底需要的参数是什麽,
且也不清楚原C++原始码的AnsiString是哪边定义的,
所以也只能就你说的Func和Data, 就假设它们为char array
2.
假设你已经有了Func和Data两个char array,
而你想让使用到CommRead函式的这个部份编译通过,
那麽尝试以下做法或许能够编译通过(不保证程式能运作正常):
unsafe
{
fixed (char* ptr1 = Func)
{
fixed (char* ptr2 = Data)
{
int i = 1;
if( CommRead( 0, &i, ptr1, ptr2 ) != 0 )
{
...
}
}
}
}
P.S.
请在你的Build Options设定中, 将Allow unsafe code打勾,
或是在Compile时加上 /unsafe
3.
因为没有更多的资讯, 也不晓得你从哪边参考的C++原始码要移植成C#版
但如果能够知道CommRead在做些什麽,
而又不想花太多时间在解决你所遭遇的问题时,
强烈建议你重新写一个C#版的CommRead函式搞不好还比较快
(你是个Programmer的话,写个函式替换不花太多时间吧?!)
以上建议给予参考
--
对於已经无法拥有的
唯一能做的是
不要忘记
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.230.128.38
※ 编辑: petrushka 来自: 125.230.128.38 (09/05 16:11)
※ 编辑: petrushka 来自: 125.230.128.38 (09/05 16:14)