2009-08-20 7 views
1

[DllImport( "DoSomething.dll"、EntryPoint = "something_dump"、SetLastError = true)] プライベート静的extern void something_dump(IntPtr dumper);Vista DLLImport問題C#

私はそれが正常に動作XPマシンではなく、VistaでこのDLLIMPORTを実行すると、私は例外を受け取る:

DLL「DoSomething.dll」を読み込むことができません

:指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007E)

両方のマシンのWindows/System32ディレクトリにありますが、何らかの理由でVistaがロードされません。

とするとき、私は完全にVistaマシン上のパスを認定... DLLIMPORT( "C:\ WINDOWS \ SYSTEM32 \ DoSomething.dll" ...それは動作します

私は実際にDLLIMPORTを伝える必要があります!関数は、system32ディレクトリを見るためにVistaマシンで?

+1

これは、ビスタの32ビットまたは64ビットバージョンのですか? – Jeremy

+0

Vistaマシンは32ビットです(32ビットというだけでなく、明らかに私は32文字を使用しなければなりません)。 – Will

+0

DLLは実際にVistaマシンに登録されていますか? – mxmissile

答えて

0

問題は、誰かが現在のソリューションの出力ディレクトリにdllをコピーしている...問題は、彼らは出力ディレクトリにDLLの依存関係をコピーしていないということです。だから何らかの形でXPはそれらの依存関係を解決することができ、Vistaは失敗するでしょう(dllは両方のOSで全く同じです)

Soluti on:現在のソリューションの出力ディレクトリにシステムDLLの対処を削除します。

0

Dllを "document settings \ administrator \"に配置して、このパスを実行します。

すべてのサポートファイルexample .inoまたは.txtファイルのサポートもそのdllに配置する必要があることに注意してください。

正常に動作します。

すべて最高です。

よろしく、 Prasath