![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問に追記をしたいので新設してもう一度質問をしました。
プラットフォームはVS.NET2005でC++で記述しています。 OSはWindows XP SP3です。
自分で作成したDLLを読み込むためにLoadLibrary関数でDLLを読み込んだハズなんですがエラーになり、エラー値126で、指定したモジュールがありません と出ます。
たしかに指定したフォルダにDLLがあるはずなんですが。
DLLの方は実は.NET2003で作られたDLLです。
しかし2003でも2005でも関係なくDLLは読み込まないようです。 ただ、.NET2003からコンバートしたソリューションだと正常にdllファイルを読み込んでいます。 NET2005で新規作成でプロジェクトを作り、そこの.cppファイルからdllファイルを読み込ませようとすると失敗します。
一つ気になるのが、Microsoftのホームページの以下のアドレスでその事に関する対策が載っているようです
http://support.microsoft.com/kb/891401/ja
この問題を解決するには、最新バージョンの Windows スクリプト ホストを使用してコンピュータを更新します。これを行うには、次のマイクロソフト Web サイトを参照してください。
解決方法としてこのように載っていますが、リンク先がありません。
何かしらどこかにリンク先がないでしょうか?
もしくはこの問題を解決できる方法はありませんか?
質問でもなんでもいいので解答ください。 m( )m
どうかよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
コンバートしたプロジェクトでうまく読み込めるなら、そのプロジェクトで作成した実行ファイルとdllファイルを、開発環境が入っていないマシン(必要であればVirtualPCやVMWareなどで作成して)でちゃんと動作するか確認してみては?
ランタイムや他のdllが必要であれば、それらをインストールやコピーしないと動作しなくなるので、必要なものが確認できます。
あと、コンバートしたプロジェクトと新規のプロジェクトの違いというと、UNICODEを使用するか否かという部分が大きいと思いますが、その辺は影響しませんか? UNICODEを使用するプロジェクトであれば、LoadLibraryに渡すファイル名もUNICODEにする必要があります。
もう1つ、チェックするとすれば、dllファイルの場所をフルパスで記述してみるとか。
以前、読み込むdllの場所によって、セキュリティの問題が発生したことがあって、何らかの対策が追加されているかもしれません。
この回答への補足
>LoadLibraryに渡すファイル名もUNICODEにする必要があります。
Unicode文字に対応するということでしょうか?
プロジェクトのプロパティでUnicode文字からマルチバイト文字に変更して
デバッグをやっています。
Unicode文字じゃないとエラーが多く出て実行できないんでマルチバイト文字セットを使用するにしました。
DLLでもそうです。
No.2
- 回答日時:
提示されたリンクの内容は、
「アプリケーションを作成しようとすると、アプリケーションが正常に作成されず、次のようなエラー メッセージが表示されることがあります。」
なので、VisualStudioが正常に動作しない場合の対処方法です。
今回の問題とは違う内容でしょう。
dllファイルの読み込みに失敗する場合、そのdllファイルだけでなく、dllファイルが読み込む別のdllファイルの存在の有無も影響します。
Depnedency Wakerなどで依存関係をチェックしてみてはいかがでしょうか。
解答ありがとうございます。
dependswalkerで調べてみたところ、そのDLLにリンクしているDLLの一部がない(EFSADU.DLL WER.DLL IESHIMS.DLL)と言われますが.NET2003では動いてますよね^^; DLLリンクに問題ないDLLでもやはり読み込みません。
.NET2003のRuntime(CRT)が入っていないと指摘されたことがあるのですが
そうなのでしょうか?
NET2003のRuntime(CRT)というのは今は調べているところです。
No.1
- 回答日時:
script 5.7で良いなら、マイクロソフトからダウンロード。
http://support.microsoft.com/kb/949140/ja
ざっと追っかけた感じだと、regsvr32で済みそうな。
マイクロソフトでダウンロードして試したら、もう必要ないというエラーがでました。
どうやらもうアップデートされているようです。
regsvr32でDLLをどのようにするのでしょうか?
regsvr32はDLLをレジストリ登録して使用するとあるのですが。
自分が使っているDLLはレジストリ登録は必要ない状況です。
あと説明の追記をしておきます。 DLL関連の追記です。
DLLは MFC・ATCは使っていません。 .FrameWorkもです。
利用側のEXEも使用していません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- その他(コンピューター・テクノロジー) パソ粥が壊れてしまい。 新しく買ったパソコンに Amplitued5 Max をダウンロードインスト 1 2022/05/22 00:33
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- その他(ソフトウェア) MMD PMXエディタ プラグイン 押せない はじめまして。MMDについて質問させていただきます。 7 2022/05/04 15:53
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- その他(OS) OBSが起動できません 3 2022/03/30 12:21
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6で、非表示モジュール(?)の...
-
エラーの原因は?「この関数の...
-
printfで全角カタカナが文字化け?
-
VB.NETで他のプロジェクトで作...
-
VB6 exeファイルのプロパティの...
-
ACCESSのEXEを作るのは可能...
-
VC++ 2005 Intellisenseを更新....
-
関数名クリックでその関数を表...
-
コンパイルするときに、ファイ...
-
VB.NETでActiveX(OCXファイル)作成
-
Visual Studioでプロジェクトが...
-
bcrypt.h コンパイルエラー
-
VBのコンパイルしてときにbinフ...
-
他の.CPPファイルに定義した関...
-
C言語初心者の質問失礼します。
-
ファイル内のデータを1行削除...
-
フルパスから最後のディレクト...
-
どんなプログラムを書いても指...
-
バッファとは何ですか
-
Access クエリ実行が急に非常に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
ACCESSのEXEを作るのは可能...
-
コンパイルするときに、ファイ...
-
C#のクラスをVB.netで使用したい!
-
エラーの原因は?「この関数の...
-
他の.CPPファイルに定義した関...
-
VB6で、非表示モジュール(?)の...
-
VC++でexeファイルが作成できま...
-
ソースから参照しているOCXの一...
-
Visual Studioでプロジェクトが...
-
VisualBasicを保存するときにで...
-
srand48? drand48?
-
「マージする」とは?
-
VB6 exeファイルのプロパティの...
-
プリコンパイル?
-
VC++ 2005 Intellisenseを更新....
-
libssh2のインクルード
-
Visual Studioを使ったフォーム...
-
同じソースコードなのにバイナ...
-
c言語として保存できない
おすすめ情報