关于DLLimport的写法,我有一个函数原型,如何import写在C#

banping 2009-11-13 03:25:57
函数原型在下。

STDMETHODIMP CFullTunnelServiceControl::FullTunnelServiceControl(
BSTR * control_type,
BSTR * username,
BSTR * password,
BSTR * sourcecode,
BSTR * destcode,
BSTR * ip,
BSTR * port,
BSTR * content,
BSTR * sendtype,
VARIANT *pvRE
)



这个是函数运行,调试后一切正常,在VB6.0中调用运行正常
我在c#中这样写

[DllImport("SendControl.dll",CharSet =CharSet.None )]
public static extern Object FullTunnelServiceControl( ref string control_type, ref string name, ref string pwd, ref string sc, ref string dc, ref string ip, ref string port,ref string content,ref string sendtype);

报错 pInvoke 限制,无法返回变量。
我估计就是定义这个地方写的不对,请教诸位那个能帮我纠正下
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
banping 2009-11-13
  • 打赏
  • 举报
回复
function FullTunnelControl(control_type,name,pwd,sc,dc,ip,port,content,sendtype){
var CommandRtn;
try
{

//for(var i=0;i<100;i++){
//var i=1;
CommandRtn=FullTunnel.FullTunnelServiceControl(control_type,name,pwd,sc,dc,ip,port,content,sendtype);
//if(CommandRtn!=1)
{
//alert(i);
alert_by_state(CommandRtn);
}
//}


}
catch(e)
{alert(e.description);
alert("异常");
}
return;
}


</script>


<Body >

<OBJECT id="FullTunnel" width="100%" height="24" classid="clsid:11FCBB79-75DC-4C17-AF52-48B0D3FE0D6F" #version=1,0,0,1" >
</OBJECT>

调试的时候,他给的例子是在网页中,直接用 var CommandRtn; 接受返回值,可以调试成功。
我引用的时候该如何定义呢?
banping 2009-11-13
  • 打赏
  • 举报
回复
不能用Object 来代替通用的格式吗?
如果不知道 STDMETHODIMP 该如何定义呢?
threenewbee 2009-11-13
  • 打赏
  • 举报
回复
返回STDMETHODIMP,不是Object。
STDMETHODIMP要看怎么定义的了,多半是个结构体。

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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