C# 调用非托管.dll文件 的调用方法

方法名:te2GetLastErrorconstchar*te2GetLastError(void);te2GetSizeint32te2GetSize(uint16*s... 方法名:
te2GetLastError
const char * te2GetLastError(void);

te2GetSize
int32 te2GetSize(
uint16* size
);
调用:public class TestE2{
[DllImport("TestE2.dll", EntryPoint="te2GetLastError",
CharSet=charset, CallingConvention=calling_convention)]
public static extern IntPtr te2GetLastError();
[DllImport("TestE2.dll", EntryPoint="te2GetSize",
CharSet=charset, CallingConvention=calling_convention)]
public static extern int te2GetSize(out ushort size);
}
我在另外页面调用 需要获取te2GetLastError()返回的值,然后赋值给this.lable1.text.
我不会使用这样做的:this.label1.Text = TestE2.te2GetLastError().ToString();结果返回一串数字,
我不知道应该怎么获取,希望能给个具体代码。
还有te2GetSize()不是返回INT类型吗?可是它的作用好像是获取具体大小。查了一下好像是指针什么的,
具体就不会做了。希望给出代码。本人完全小白。。。谢谢
展开
 我来答
任瑞全
2013-09-03 · TA获得超过231个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:200万
展开全部
char * 在C++里貌似是字符串,te2GetSize方法里,有看到你用到 out ushort size 这个size才是返回值
更多追问追答
追问
这个代码是厂家提供的,我看不太懂。具体怎么获取呢。把它读到lable上去
追答
[DllImport("TestE2.dll", EntryPoint="te2GetLastError",
CharSet=charset, CallingConvention=calling_convention)]
public static extern IntPtr te2GetLastError();

这段代码里有一个IntPtr 说明这个方法返回的是句柄,就是你说的一串数字,拿到这个数据,把他当成字符串,赋值给label就可以啦,就像你上面写的 this.label1.Text = TestE2.te2GetLastError().ToString(); 这个是正确的哦,还有,如果是厂商给你的,至少有个对接人吧?有什么不懂的地方,还是问对方的技术比较快一点.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式