3

ライブラリをロードする Windows 実行可能ファイルがあり、Windows DLL をオーバーライドする Winelib DLL を作成したいと考えています。検索して試してから2日経ちましたが、うまくいきません!私を助けてください !

基本的に、次のコマンドで Winelib DLL をビルドするために mydll.c と mydll.spec を作成します。

winegcc -m32 -shared -o mydll.dll mydll.c mydll.spec

現在、mydll.dll.so があり、 mydll.dllをオーバーライドしたい(どちらも同じ場所にあります) どうすればよいですか? mydll.dll の名前を変更しようとしましたが、関数が呼び出されたときに Page Fault が発生しました。また、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)

mydll.c

#include <windef.h>

int WINAPI myfunc(char * str)
{
  strcpy(str, "myfunc from the Winelib DLL");
  return 0;
}
4

2 に答える 2