如何区分DLL中的函数是采用_stdcall约定还是采用_cdecl约定?

如何区分DLL中的函数是采用_stdcall约定还是采用_cdecl约定?,dll,Dll,我有一个dll,可以通过dependency walker查看函数名,那么我如何判断函数是在\u stdcall约定中还是在约定中 我问这个问题是因为我注意到关于何时使用\u stdcall以及何时使用\u cdecl约定导出DLL中的函数有很多讨论 当DLL的源代码可用时是可以的,但是当只有一个DLL文件可用时又如何呢?MSDN对所有VC++都有很好的文档记录。从那里开始 可以覆盖导出命名,因此这可能不是区分事物的完美方式。您还可以反汇编函数,并密切注意它是如何使用寄存器和堆栈的,以快速地找出

我有一个dll,可以通过dependency walker查看函数名,那么我如何判断函数是在
\u stdcall
约定中还是在
约定中

我问这个问题是因为我注意到关于何时使用
\u stdcall
以及何时使用
\u cdecl
约定导出DLL中的函数有很多讨论

当DLL的源代码可用时是可以的,但是当只有一个DLL文件可用时又如何呢?

MSDN对所有VC++都有很好的文档记录。从那里开始


可以覆盖导出命名,因此这可能不是区分事物的完美方式。您还可以反汇编函数,并密切注意它是如何使用寄存器和堆栈的,以快速地找出它。

您使用的是什么语言?C++?你应该用正确的语言标记这个问题,以帮助更多的人关注它。DLL的文档应该告诉你。该信息不包括在DLL中。实际情况是,我想用Python或Java加载DLL。DLL是用VC++和一个.def文件构建的。如果你有源代码,你可以阅读它,看看预期的调用约定是什么。如果您没有源代码,则必须查阅文档。该信息不会记录在DLL或DEF文件中。