弊社製作の画像処理系DLL
実装はVC++2005@Visual Studio 2005にて
さくっと,完成,オイラの愛するスタッフちゃんがたむろってる,某所へ納品
その某所では,このDLLを使ってさらに上位アプリケーション開発を行っており
納品後一ヶ月越えて,不具合の話もなく
もう完全に落ち着いたのぉ~などと,高をくくっていた,台湾出張の前日...
オイラのスタッフちゃん
-
くまさん!開発環境丸ごと,新しいパソコンに引っ越したら変なエラー出て
Exeが実行できないんです!!
詳しい内容を,オンライン経由で送ってもらったら
Visual Studio2008(現場の開発環境)にて実行すると
-
LDR: LdrpWalkImportDescriptor() failed to probe c:\Documents and Settings\hogehoge\ for its manifest, ntstatus 0xc0150002
デバッガ:: ハンドルされていない続行不可の例外がプロセスの読み込み中にスローされました
なんて,見たこと無いエラーが出て,Exeが起動直後,アボート...
軽く調べてみたけど,原因よくわからず
-
とりあえず,台湾から帰ってから!
それまでは,旧パソコンに環境戻して,現状維持せよ!!
さて,帰国後,調査開始
なんか,マニュフェストが絡んでるとか何とかのエラー?
マニュフェスト??うちの知事の公約じゃろか??@ドゲンカセントイカン
とか,調べていったら...
こちらのページに行き着いて
VC++ 2005のランタイムDLLをEXEに同梱する@イグトランスの頭の中(のかけら)
なんでも,いつの頃から知らないけど
DLL HELL(DLL地獄)
DLLのバージョン不整合によるシステム不具合
を回避するカラクリが導入されたような話
VC++で作成したDLL
単純にエクスプローラでコピペしても,動かなくなってしまったそうで
今回のケースがまったくそう
VC++6時代は,コピペですんでたんで
今回も,作業手順に”本DLLをコピペすると動きますわん”と連絡してしまっており 🙁
この仕様変更,オイラ聞いてないぞぉ~>マイクロソフト 👿
これを回避するためには
インストールプロジェクト辺りをこさえるか
マニュフェストファイル
-
Microsoft.VC80.CRT.manifest
Microsoft.VC80.MFC.manifest
しかなさそうな雰囲気...
上記,
VC++ 2005のランタイムDLLをEXEに同梱する@イグトランスの頭の中(のかけら)
さまのページを参考にあ~だこ~だ,やってみたけど,動かない...
なんか,だんだん,イラッ☆としてきた....
さらに調べていったら...
-
コンパイルオプション
[構成プロパティ][プロジェクトの規定値][MFCの使用]を
“スタティック・ライブラリーで MFC を使用する”
ようは,動的にMFCやらCRTランタイムをリンクするんじゃなく
静的リンクにやるようにオプション変更すればいいそうな
ちょいとDLLがでかくなるけど
この変更
(付随して,C/C++オプションのランタイムライブラリの項目を/MD(/MDd)から/MT(/MTd)に変えないとダメ)
をやって,ビルドかけなおしたら,無事に動きましたわん 😳
exeの起動が,1秒近く遅くなるそうじゃけど
C#やってる身にすりゃ,起動,そんなに変わらんぞ 😎
ってことで,日本語の資料も,わりと少なかったんで
ググって,後から来る方のために,ここに記述しておきますです...
関連記事
- 【C++】CPPで鬼のような実装を行った!動いた!!キタ――(゚∀゚)――!! 【2020年09月29日(火)】
- 昨日はC#で4000行,今日はC++で300行 【2020年08月25日(火)】
- ひっさしぶりに,VCでMFC-DLLを作るど(;´Д`)ハァハァ 【2019年05月13日(月)】
- 2018年に求人の多いプログラミング言語トップ7 【2017年12月21日(木)】
- 【やよいの青色申告】が起動しない!mfc120.dllのエラー発生!! 【2016年11月10日(木)】
コメント
【#新型コロナウイルス】コロナ、新型インフルと同分類へ
【#新型コロナウイルス】宮崎:自宅療養者が246人(21/1/12)
すんごい不安感に襲われており
【#アメリカ大統領選】抗議デモのトランプ支持者らが米議会に乱入
【#新型コロナウイルス】宮崎:100人超の感染確認(21/1/7)
【#新型コロナウイルス】宮崎:80人の感染確認(21/1/6)
ちょっと頭痛い
あけましておめでとうございます!(21/1/1)