这个问题一搬是由于调用的函数名入口点写错了导致。
查看Dll的入口地址,win10下的查看方式用dumpbin.exe查看
方式为:找到dumpbin.exe路径(C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86)
然后cmd 到路径下执行命令:dumpbin.exe /EXPORTS "xxx.dll"
得到类似上图中的结果,c#中调用入口点写上对应的名字就可以了,如cando_list_malloc@4
[DllImport("cando.dll",EntryPoint = "cando_list_malloc@4")]
public static extern bool cando_list_malloc(ref IntPtr list);
bool cando_list_malloc(void *list);