電子書籍の厳選無料作品が豊富!

ビジュアルスタディオ2010(VC++)で開発したアプリが他のパソコンで表記のDLLがないため、動作しない場合の対策を教えてください。

ユーザーがVCをインストールしていない場合も、実行できるようにしたいのですが、リリースの段階で、このDLLを組み込むことは出来るでしょうか?
ランタイムライブラリーは「マルチスレッド(/MT)」です。

A 回答 (7件)

>実はこのDLLはWin32フォルダーにあるのですが、認識してくれません


認識しないって何?

具体的な情報なしでは何万回やりとりしても無駄だよ?

こりや時間の無駄だな。
    • good
    • 0
この回答へのお礼

tknakamuriさん
再度の解答ありがとうございます。
不適切な表現で申し訳ありません、エラーをよくみるとこのDLLの中にこのアプリを動作させるに必要なコードが含まれていない、ということのようです。
おっしゃるとおり、基本的なDLLなのでないのが不思議だと思います。
パソコン側に責任があると言うことで解決しました。
ありがとうございました。

お礼日時:2018/07/11 08:44

>OSはWin7HomePre...


>XPで10年以上前のパソコンです。

なんでPreなんかはまぁ置いておくとして……。
新しいOSで開発したモノを古いOSの方で動かす。って事でいいんですかね?

そうすると、使っているAPIのサポート範囲を確認する必要があるかと思われます。
MSDNのリファレンスページ(最近見ていないが)に、サポートする範囲が記載されている筈です。
https://docs.microsoft.com/ja-jp/windows/desktop …
のWindows versionのところとか。

MFCだったりすると…どうなるのかなぁ???
普通にAPIをコールしているだけ…だった場合は、WINVER辺りで設定だったかな?
「WINVER 指定」辺りで検索してください。
https://msdn.microsoft.com/ja-jp/library/6sehtct …
https://qiita.com/hkuno/items/7b8daa37d9b68e390d7e
とか。

アプリを起動した場合にuser32.dllでエクスポートされている関数コールになるように処理されますが、
Windows7で拡張された機能を使用するようにビルドされたモノをWindowsXPで起動すると対応するエクスポート関数が無いとか、
引数の数が異なるとかで正常に動作できない場合があります。
おそらく、今回はソレに該当するのでしょう。
拡張されたAPIを使用していないのであれば…上記のWINVERとかの設定で抜けられる…かも知れません。
    • good
    • 0
この回答へのお礼

参考URL見ましたが、英語サイトで私にはわかりません。
他のサイトはMFCを使っていない事とビルドしたのがvc2010のため該当のページがありませんでした。

結論ですが、古いパソコンはあきらめることと、microsoft Visual Studioの最新バージョンをインストールします。

お礼日時:2018/07/10 13:58

エラーメッセージは正確に書いてほしいと思いつつ.



「ビジュアルスタディオ2010(VC++)で開発したアプリ」は Windows のどのバージョンで開発していますか?
    • good
    • 0
この回答へのお礼

Tacosanさん、毎度お世話になります。
OSはWin7HomePre...
です。
実行させたのが古いXPです。

お礼日時:2018/07/10 10:52

>user32.dllを静的リンクするためのプロジェクト



OSに関わるDLLだから静的リンクはできないと思いますが。
暗黙的なリンクはされるでしょうが。

WindowXPでビルドしてuser32.dllが静的リンク出来たとして、ソレがWindows10の64BitからAPI呼べますかね?
APIの全部をリンクして200Mとかの実行ファイルで超大作とかかっこいいですね。

msvcrXX.dllと間違えていたりしませんか?
ちなみにデバッグビルドした場合にmsvcrXXd.dllがない。とか言われるパターンの場合、ランタイムをインストールしても解決しません。
デバッグビルドでリンクされるmsvcrXX『d』.dllは配布対象ではありませんので。
    • good
    • 0
この回答へのお礼

実はmsvcr100.dllも無いとエラーが出ましたが、こちらは解決しました、すると今度は今回の質問のDLLに至りました。
>動作させようとしている環境はなんです?(OSやメモリとか)
XPで10年以上前のパソコンです。

お礼日時:2018/07/10 09:44

user32.dllはwindowsのシステムファイル、つまりwindowsのー部なので、


無いことは有り得ないし、アプリに静的にリンクすることも出来ません。


因みにuser32.dll は UI関連のAPIそのもので、無いと全てのアプリは勿論、
windowsそのものが動かなくなります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
実はこのDLLはWin32フォルダーにあるのですが、認識してくれません。

お礼日時:2018/07/10 09:38

user32.dllって…Windowsのシステムファイルじゃなかったでしょうかね?



動作させようとしている環境はなんです?(OSやメモリとか)

https://support.microsoft.com/ja-jp/help/142676/ …
とは違うんですよね?


ランタイムライブラリがない…ってのなら、静的リンクでしょうかね。
「VisualStudio ランタイム 静的リンク」辺りで検索するといいでしょう。
    • good
    • 0
この回答へのお礼

再度ありがとうございます。
user32.dllを静的リンクするためのプロジェクトのコマンドラインの書き方を教えてください。

お礼日時:2018/07/09 17:57

Microsoft Visual C++ 2010 再頒布可能パッケージ


https://forest.watch.impress.co.jp/library/softw …
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
相手に、ダウンロードさせないで、済む方法はないでしょうか?
よろしくお願いします。

お礼日時:2018/07/09 17:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報