gpt4 book ai didi

c++ - DirectDraw使用GetProcAddress获取程序地址

转载 作者:行者123 更新时间:2023-11-30 04:28:43 37 4
gpt4 key购买 nike

IDirectDraw7::SetCooperativeLevel method 的文档中所述, 它指出

You must use LoadLibrary to explicitly link to Ddraw.dll and then use GetProcAddress to access the SetCooperativeLevel method.

在备注中。但是,当我尝试这样做时(下面的代码),它无法工作。我做错了什么吗?

typedef HRESULT (*pSetCooperativeLevelFunc)(HWND, DWORD);
HMODULE ddrawLib = LoadLibrary(L"ddraw.dll");
pSetCooperativeLevelFunc SCL = (pSetCooperativeLevelFunc) GetProcAddress(
ddrawLib,
"SetCooperativeLevel"
);

if (SCL == NULL) {
// this happens
int error = GetLastError(); // 127 (ERROR_PROC_NOT_FOUND)
printf("Error getting SetCooperativeLevel function address: %i", error);
}

最佳答案

ddraw.dll 中没有导出SetCooperativeLevel 函数。使用 DUMPBIN 实用程序并自行检查。您可以使用GetProcAddress 获取DirectDrawCreate/DirectDrawCreateEx 和类似函数,但不能提取COM 对象的个别方法。

这篇文章很荒谬,没有意义。也许它应该告诉您从 ddraw.dll 或类似的东西中获取 DirectDrawCreate,但没有理由这样做。

链接ddraw.lib,调用DirectDrawCreate,访问IDirectDraw7接口(interface)提供的方法。

附言如果您不熟悉 dumpbin,我建议您至少了解该实用程序的基本用法。

关于c++ - DirectDraw使用GetProcAddress获取程序地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934824/

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