char ARRAY[1024]; // <-- global
下面的代码有效
myFunctionInDll("some string"); // everything ok
下面的代码不起作用
myFunctionInDll(ARRAY); // after compilation the entry point of DLL cannot be found
因此,总而言之,如果我将“静态字符串”传递给我的 dll 中的函数,则 dll 可以完美地编译和加载。但是,如果我填充全局数组 (chars),然后尝试将其传递给我的函数,它会再次编译,但是当我尝试从我的 C# 应用程序调用该函数时,我得到“找不到入口点”。这真的很奇怪,我找不到原因......
谢谢 RU。
有人知道为什么吗?
最佳答案
您是编写了互操作还是只是使用 .NET 生成的互操作类?如果以后试试
string myStr = "some string";
myFunctionInDll(myStr);
希望对您有所帮助。
关于c++ - DLL 互操作/有趣的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896209/