ホーム » 2024 » 12月 » 06

日別アーカイブ: 2024/12/06

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 101,571 アクセス


Shell Extension のデバッグ

ここ 1ヶ月位,共通のコードを分割したり,古いままの部分を改良したりしていた.
ある程度区切りがついたので,ツール関係のプロジェクトからビルドして exe はできる様になった.
それぞれの動作チェックはこれから.


昨日新しいコードでビルドしたものに,「シェルエクステンション」のものがある.
新しいものに置き換えて PC を操作していると,エクスプローラがうまく動作しない.ダウンする.
他の exe で実行しても同様で,イベントビューアを見ると次の様になっている.

障害が発生しているアプリケーション名: DImg.exe、バージョン: 1.0.0.1、タイム スタンプ: 0x4b5822a3
障害が発生しているモジュール名: iShelExt.dll、バージョン: 1.55.2024.8、タイム スタンプ: 0x6751c1dc
例外コード: 0xc000041d
障害オフセット: 0x0004aadc
障害が発生しているプロセス ID: 0x5054
障害が発生しているアプリケーションの開始時刻: 0x01db477a20d02f17
障害が発生しているアプリケーション パス: L:\Document\Develop\Debug\ShellExt\DImg\Release\DImg.exe
障害が発生しているモジュール パス: C:\Users\Public\Documents\Tools\i_Tools\Test\iShelExt.dll
レポート ID: c898b214-2c4e-4701-8c17-27d414c106fb
障害が発生しているパッケージの完全な名前: 
障害が発生しているパッケージに関連するアプリケーション ID: 

シェルエクステンションでの表示データを求める部分を直接呼出している単体テスト用 exe では問題ない.
HBITMAP  テスト
これは予想通り.


「開く」ダイアログでシェルエクステンションのテストができるのでコンソール AP を作成.
https://itl.mish.work/i_Tools/Doc/blog/vc/c_sxt.zip
VC 2022 の「デバッグ」-「コマンドライン」で …\c_sxt.exe を指定.
VC 2022  iShellExt
__targv がうまくなかった.DLL の場合は NULL になる?


次の様に修正.

	#ifdef	_MSC_VER
	{
		if (G_arg.size() == 0) {
		//	::reg_argv(__argc,__targv) ;
			if (__targv != NULL) {
				for (int index=0 ; index<__argc ; index++) {
					tstring	av = __targv[index] ;
					G_arg.push_back(av) ;
					}
				}
			}
		}
	#endif

if (__targv != NULL)

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.