こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

WinXPで作成したアプリをWin7で起動できない

・開発環境
 WindowsXP
 VisuaStudio6.0 C++

・起きている現象
 上記開発環境にて、別の人が作成したDLL(××.dll)を組み込んだアプリを作成していますが、
 Win7のPCにexe, dllをコピーして起動しようとしたところ、
 「プロシージャ エントリポイント 〇〇(特定の関数名)が
 ダイナミックリンクライブラリ ××.dllから見つかりませんでした」
 というエラーが出て起動できません。
 原因として何が考えられるでしょうか?回避策等はありますか?
 

投稿日時 - 2013-03-12 01:44:21

QNo.7989010

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

シンボリックリンクやジャンクションなど、仮想的なパスでないディレクトリに移動して、
実行するとか、lib.exeでインポートライブラリを作り直すとか。
http://yohshiy.blog.fc2.com/blog-entry-66.html

投稿日時 - 2013-03-15 08:03:02

ANo.2

> えらメッセージに出てきた関数はdll作成者の作った自作関数で、APIではありません。

DUMPBIN でエクスポートされてる関数を調べては。
http://msdn.microsoft.com/ja-jp/library/vstudio/30e78zd0.aspx
# 存在しない関数だから呼べないだけではと。

投稿日時 - 2013-03-14 08:41:02

ANo.1

この関数ってAPIなんですかね?
Vista以降で廃止されたAPIなのか、それとも単純にDLLのバージョンが違うのか。
前者ならAPIフックで(SetDll)、
http://research.microsoft.com/en-us/projects/detours/
後者ならマニフェストファイルで(mt.exe)。
ほかには、exeファイルを右クリックして、プロパティから互換性タブで互換モードをXPにするとか。

投稿日時 - 2013-03-13 08:45:46

補足

コメントありがとうございます。
えらメッセージに出てきた関数はdll作成者の作った自作関数で、APIではありません。
説明不足で申し訳ありません。

exeのプロパティ→互換モード変換は知りませんでした!
今回は動作に効果はありませんでしたが勉強になりました。

投稿日時 - 2013-03-13 21:59:41

あなたにオススメの質問