c#中如何转换VB语法“Byref",请高手来,高分等!在线等!

ashflying 2005-01-13 10:01:53
Public Declare Function bAutoInit Lib "Com.dll" (ByRef CommInfo As STRUCommInfo) As Boolean
如上VB的API:
在C#中
我翻译成:
[ DllImport( "Com.dll", EntryPoint="bAutoInit")]
public static extern bool bAutoInit(ref STRUCommInfo CommInfo) ;
调用时:
bRet = bAutoInit(ref com_inf);
却总是报“System.ExecutionEngineExcept”异常,

请高手指教,急急急哦
...全文
1018 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
egxsun 2005-01-14
  • 打赏
  • 举报
回复
引用传递ref和out都可以
herony420 2005-01-14
  • 打赏
  • 举报
回复
记住要初始化
happyjun2000 2005-01-14
  • 打赏
  • 举报
回复
http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html
这个网站不错
YIO2002 2005-01-13
  • 打赏
  • 举报
回复
你用tblimp.exe把DLL生成程序集在引用吧
心情解码 2005-01-13
  • 打赏
  • 举报
回复
up

--
ashflying 2005-01-13
  • 打赏
  • 举报
回复
要是能在直接在vs.net下引用,我哪会采用这种方法,我引用的时候总是报“没有DLL。。。。”的错误。。。晕啊。。。
precipitant 2005-01-13
  • 打赏
  • 举报
回复
咋能翻译成静态的呢?
如果在vs.net下直接引用,没这些麻烦。
机器人 2005-01-13
  • 打赏
  • 举报
回复
呵呵,VB.Net 中ByRef 关键字指示参数可以这样的方式传递,所调用过程可以更改呼叫代码中参数的基础变量的值。
bRet = bAutoInit(com_inf);
这样试试
ashflying 2005-01-13
  • 打赏
  • 举报
回复
完整的调 用是:
STRUCommInfo com_inf = new STRUCommInfo();
com_inf.iBaudRate = 9600;
bRet = bAutoInit(ref com_inf);
试了不管是用“ref"还是“out”都会产生“System.ExecutionEngineExcept”异常,
为什么会这样啊??
ashflying 2005-01-13
  • 打赏
  • 举报
回复
但是,CommInfo是个类对象,这个API会把CommInfo的一个类成员类量赋值,我要取值,所以要按地址传送这个参数,如果把ref去掉:那com_inf.szSCA 这个成员变量的值能取出来吗?我试了好像不行。另附上那个类的结构:
public class STRUCommInfo
{
public int iBaudRate;
public string szSCA = new string(new char[30]); //30
}
YIO2002 2005-01-13
  • 打赏
  • 举报
回复
如果要使用REF,必须把com_inf先声明类型,并赋初,如没有初值就=null吧
LoveCherry 2005-01-13
  • 打赏
  • 举报
回复
引用传递ref和out都可以
ref 参数传入时需要初始化
out 参数传入时不需要初始化,但是出来的时候需要保证会产生一个有效地引用
SeeSunSet 2005-01-13
  • 打赏
  • 举报
回复
up
兔子-顾问 2005-01-13
  • 打赏
  • 举报
回复
倒,楼上的笔误吧,
是去掉by
ref 就可以了
The123 2005-01-13
  • 打赏
  • 举报
回复
把ref去掉
landlordh 2005-01-13
  • 打赏
  • 举报
回复
不要加入点
ashflying 2005-01-13
  • 打赏
  • 举报
回复
楼上的那位,请问tblimp.exe这个程序在哪有啊,两天没有上来,不好意思!

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧