我有一个加载库的 Windows 可执行文件,我想创建一个将覆盖 Windows DLL 的 Winelib DLL。我搜索并尝试了2天,但它不起作用!请帮我 !
基本上,我创建 mydll.c 和 mydll.spec 以使用以下命令构建 Winelib DLL:
winegcc -m32 -shared -o mydll.dll mydll.c mydll.spec
现在我有mydll.dll.so并且我想覆盖mydll.dll(两者都在同一个地方)我该怎么办?我尝试重命名 mydll.dll 但调用该函数时出现页面错误!我还尝试使用 winecfg 配置覆盖或设置 WINEDLLPATH 等环境变量。我不明白如何进行。
我如何在我的 Windows 可执行文件中加载库
HINSTANCE DllHandle;
char str[255];
typedef int(__stdcall * tfp)(char * const);
DllHandle = LoadLibrary("mydll.dll");
tfp fp = (tfp)GetProcAddress(DllHandle, "myfunc");
fp(str);
FreeLibrary(DllHandle);
mydll.spec
@ stdcall myfunc(str)
我的dll.c
#include <windef.h>
int WINAPI myfunc(char * str)
{
strcpy(str, "myfunc from the Winelib DLL");
return 0;
}