__declspec(dllexport)导出的函数名就是内部链接用的函数名。用__cdecl就会换一种方式,后面没有@什么什么了
第二个问题,我试了一下,改为这样
void __stdcall CopyIntArray2(int **ppIn, int **ppOut, int n)
{
int i;
for (i = 0; i < n; i++)
{
(*ppOut)[i] = (*ppIn)[i];
}
}
至少读取是能读取了。毕竟要先解引用(解除ref)然后才能开始索引,而不是先索引然后再解引用。
但是如果声明的时候不说清楚数组长度,那么函数返回以后它就默认当作你长度是1了。所以指明最后一个参数为数组大小
Private Declare Sub CopyIntArray2 Lib "testdll.dll" (
.net 4.0下可以,.net 2.0下不认那个属性参数
想体会一下可以试试看我传的这份代码工程。两个工程都可以下断点然后启动实例调试