DWORD dwAddr = (DWORD)GetProcAddress(GetModuleHandleA("user32.dll"),"MessageBoxA");
假设MessageBoxA地址是0x1234abcd 。 我想要的是这样的:
char *func_name = this_is_what_i_want(0x1234abcd); printf("%s",func_name); // this will print "MessageBoxA"
操作系统:Windows
libeio在windows上
确定HWND是否代表顶级窗口的最佳方法是什么?
区分由cl.exe生成的64位PE对象文件(Visual Studio C ++)
最好的方法来检查许可证
获取.NET枚举的Windows本地化
每个线程组的线程互斥
使用VC ++ express编程windows
setuid()返回0,但没有效果
更快的方式来读取文件比boost :: file_mapping?
使用SYMBOL_INFO结构的SymFromAddr 。 该结构将包含Name成员中的Name 。
SYMBOL_INFO的分配内存非常棘手,请务必阅读文档。
如何分配SYMBOL_INFO:
const size_t array_size = 256 ; const size_t size = sizeof( SYMBOL_INFO ) + ( array_size-1 )*sizeof( TCHAR ) ; SYMBOL_INFO* symbol = calloc( 1,size ) ; if( !symbol ) { //deal with it } symbol->SizeOfStruct = sizeof( *symbol ) ; //both values must symbol->MaxNameLen = array_size ; //be set by user
请注意,我们在这里减1: ( array_size-1 )因为结构已经给我们一个字节,我们希望我们的字符串数组大小为256而不是257。
这个结构现在有足够的空间来存放长度为255的字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。