C++:关于加载 DLL 和调用函数的一件小事
C++: A small thing about loading a DLL and calling a function
我一直在寻找一些dll或类来获取客户端的硬件信息,最后找到了:http://www.soft.tahionic.com/download-hdd_id/index.html
谁能告诉我如何做同样的事情,调用函数?我在 C 中使用了这段代码,它可以工作。现在我无法将其转换为C++。
char* (__stdcall *GetIDESerialNumber)(BYTE);
HINSTANCE DllInst = NULL;
if (DllInst == NULL) DllInst = LoadLibrary("hardwareid.dll");
if (DllInst)
{
GetIDESerialNumber = (char* (__stdcall*)(BYTE))GetProcAddress(DllInst, "GetIDESerialNumber");
printf(GetIDESerialNumber(0));
}
如果有人能为我做到这一点,做了一些研究,但仍然没有找到答案,我会很高兴。
您的代码可能是特定于Windows的,应该这样标记。Posix系统将dlopen
.
C++函数名称经常被篡改,您可能需要将损坏的名称传递给GetProcAddress
(或在 Unix 或 Linux 上传递dlsym
)。
名称重整约定是特定于编译器和系统的。
相关文章:
- 为什么make_tie不是一件事
- 不知道如何在家庭作业任务中实现一件事
- 调用函数一次用于动态链接库,一次从可执行文件调用函数
- 跨类的多个实例调用函数一次
- 有没有一种方法可以使全局函数/静态成员函数一次可呼出
- <<是一件C++的事情 - 相当于Java。
- 如何在不使用静态变量的情况下从递归函数中只调用另一个函数一次
- 为什么会这样?堆,展示了一件事,然后又展示了另一件事
- 子类中的虚拟函数调用父函数一次
- 如何使函数一次使用一个 3 个不同的变量
- 使用windows.h是一件好事吗?
- 执行函数一段时间
- C++:关于加载 DLL 和调用函数的一件小事
- 虚拟析构函数会是一件坏事吗?
- 引用或复制结构的结构(已分配的memset)是一件有效的事情
- 我在wxPaint DC绘图中发现了一件奇怪的事情
- 通过多重私有继承扩展类-这是一件事吗
- 使c++编译器优化到在map初始化时只调用构造函数一次
- 加工va_list一件一件
- 没有明显目标的std::cout在已发布代码中是一件不好的事情吗?