C#导入DLL时,参数怎么定义是一个比较头痛的问题。特别是指针类型的参数,关于此问题本人有点不成熟的经验。
以 GetComputerName这个函数为例。
函数原型如下:
BOOL GetComputerName(
LPTSTR lpBuffer,
LPDWORD lpnSize
);
这个lpBuffer就是下个string型的指针,其实无论是什么类型的指针,对于Windows来说都是一个32位的无符号的整数,也就是一个内在地址,函数之所以使用指针就是要向指针所指向的内存空间写入数据。
我们用C#调用时也要给它传递一个指针,还要对应一块分配的空间 。
下面是代码:
文章来源:http://blog.csdn.net/gisfarmer/archive/2009/02/18/3904527.aspx
文章来源:http://blog.csdn.net/gisfarmer/archive/2009/02/18/3904527.aspx