如何检查 dll/lib 中的函数是否为 extern "C"在窗口中?
例如 ObReferenceObjectByName
是在 c
中定义的,所以在 c++ 中应该使用 extern "C"
但是我如何直接在 dll/lib 中检查它而不是阅读文档?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需查看 lib 文件中的符号名称即可。如果名称像 C++ 对其名称那样被破坏,那么它应该是显而易见的。
Just look at the symbol name in the lib file. If the name has been mangled like C++ does with its names, it should be obvious.
您可以在 Dependency Walker 中查看导出。
打开DLL,在右中间窗格中找到该函数,然后查看图标。它将是
C
、C++
或O#
(仅按序数导出)有关详细信息,请参阅帮助文件中的导出函数列表视图。
You can look at the export in Dependency Walker.
Open the DLL, find the function in the middle right pane, and look at the icon. It will be
C
,C++
, orO#
(exported by ordinal only)For more information, see Export Function List View in the help file.