私のアプリケーションフォルダのサブフォルダからDLLをロードします。WindowsXP上のサブフォルダからLoadLibraryに失敗しました
m_handle = LoadLibraryEx(".\\myfolder\\my.dll", 0, LOAD_WITH_ALTERED_SEARCH_PATH);
これは、Windows 7上で非常にうまく動作しますので、私はそれをロードするために、私は正しい方法を把握するために私には時間がかかる
はMyFolder/に依存するすべてのdllとmy.dllを置きます&以降。ただし、エラー998 ERROR_NOACCESS "メモリの場所へのアクセスが無効です"が返されます。Windows XPの場合。
しかしアプリケーションフォルダからこのDLLをロードする
PSのWindowsのすべてのバージョンで非常にうまく機能 :私はMYFOLDERしabsoulteと相対パスでSetDllDirectoryを使用しようとしましたが、は、Windows XP上でまだ成功
Windows XPのサポートが長期間終了しました。なぜそれをサポートする必要があるのかについての具体的な理由は何ですか? – tambre
それでも私の顧客の40%以上の大きなユーザーベースを持っています – Rem
相対パスの使用はおそらく多くの場合問題の原因となる現在の作業ディレクトリに依存しています。 XPのLoadLibraryと組み合わせて、相対パスを扱わない可能性があります。代わりにフルパスでLoadLibraryを試しましたか?または、SetDllDirectoryをmyfolderのフルパスで使用し、LoadLibrary( "my.dll")を使用します。 – stijn