我把一个exe程序改写成了dll(我在VS中将输出改成了dll,并且把主函数改成了借口也导出了),然后用一个exe去调用dll为啥会报错?
就是说,如果不屏蔽的话,会变成导入,这是为什么?
这是实现。
错误如下
我把一个exe程序改写成了dll(我在VS中将输出改成了dll,并且把主函数改成了借口也导出了),然后用一个exe去调用dll为啥会报错?
可能是因为你在将 exe 改写成 dll 的过程中,没有正确处理好 exe 中的入口函数和 dll 中的导出函数。
在 exe 中,入口函数一般是 main 或者 wmain,而在 dll 中,你需要把主函数改写成一个导出函数,并使用 __declspec(dllexport) 来导出。
例如:
// exe 中的入口函数
int main(int argc, char* argv[])
{
// 其他代码
return 0;
}
// dll 中的导出函数
__declspec(dllexport) int main(int argc, char* argv[])
{
// 其他代码
return 0;
}
如果你的 exe 中有多个入口函数,则需要把所有入口函数都改写成导出函数。
另外,你还需要注意 dll 的命名规范,比如说 dll 的文件名、函数名和符号名等。
如果你还是遇到了问题,可以尝试使用 Dependency Walker 工具来检查 dll 和 exe 的依赖关系,帮助你找到问题的原因。