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类型吗?可是它的作用好像是获取具体大小。查了一下好像是指针什么的,
具体就不会做了。希望给出代码。本人完全小白。。。谢谢 展开
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类型吗?可是它的作用好像是获取具体大小。查了一下好像是指针什么的,
具体就不会做了。希望给出代码。本人完全小白。。。谢谢 展开
1个回答
展开全部
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(); 这个是正确的哦,还有,如果是厂商给你的,至少有个对接人吧?有什么不懂的地方,还是问对方的技术比较快一点.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询