gpt4 book ai didi

c++ - 如何以编程方式获取 MSVC 中任何类型的函数的修饰名称

转载 作者:行者123 更新时间:2023-12-03 07:05:22 27 4
gpt4 key购买 nike

我想了解它的原因是我要制作一个这样的 DLL 加载器类:

class DymanicLibrary
{
//some code
template <typename FnPtrT>
FnPtrT GetFunction(std::type_info& fn_type, std::string_view pretty_name)
{
//code
}
};
//...
DynamicLibrary dll {...};
typedef void (SomeClass::* FnPtr)(int);
std::type_info& fntype = typeid(FnPtr);
auto fnptr = dll.GetFunction(fntype, "function")

//...

最佳答案

通常的方法是在使用像 dumpbin(包含在 MSVC 中)这样的工具构建之后检查 DLL 导出。

dumpbin /exports <filename>.dll > exports.txt
然后打开 export.txt 并查看列出的导出以查找要加载的函数。如果您希望使用运行时符号加载,我不知道有任何自动化方法可以做到这一点。 (使用 __declspec(dllexport)/__declspec(dllimport) 很容易执行加载时绑定(bind)),但这不适用于运行时加载。

关于c++ - 如何以编程方式获取 MSVC 中任何类型的函数的修饰名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64073984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com