タイトル : Re^3: vb6での標準出力 投稿日 : 2017/09/29(Fri) 14:24 投稿者 : 魔界の仮面弁士
> お返事ありがとうございます。 すれ違いで、先の回答 ( No16367 ) を少し追記修正しています。m(_ _)m > (1)activex.dllですが、一部この方法も使っていますが レジストリを汚したくないのなら、先の DDE も検討してみてください。 ちなみに DDE は、Excel の読み書き制御にも使えます。(Excel 本体は必要ですが) > 仕様変更(設計ミスですが)が頻発なので、 呼ばれる DLL に手を加えるのではなく、呼び出す EXE 側のマニフェスト保守が可能ならば、 Side-by-Side を使って非互換性の問題を回避する手もあります。(レジストリ登録不要) https://msdn.microsoft.com/ja-jp/library/cc482775.aspx#vbxp2-3 https://msdn.microsoft.com/ja-jp/library/ms811700.aspx#sidebyside_topic8 > (2) vb.netのexeは標準出力ができるので Console クラスの内部実装を読んでみるとか。 https://referencesource.microsoft.com/#mscorlib/system/console.cs > (3)formを使わない sub main -> end ->end subのプログラムはコンソールアプリだと > 持っていましたが、間違いなのですね。 「Form を表示するコンソールアプリ」なら、EXE をダブルクリックするとコンソールが表示されます。 しかし、「Form を表示しない Windows アプリ」では、コンソールは表示されませんね。 ちなみに EXE ファイル内の IMAGE_OPTIONAL_HEADER32.Subsystem という領域に、 コンソールアプリ(IMAGE_SUBSYSTEM_WINDOWS_CUI)なのか Windows アプリ(IMAGE_SUBSYSTEM_WINDOWS_GUI) なのかが記録されています。 https://codezine.jp/article/detail/412 https://msdn.microsoft.com/en-us/library/windows/desktop/ms680547.aspx 0x0000 : unknown subsystem 0x0001 : device driver / native system processes 0x0002 : Windows GUI subsystem (普通に作るとこれ) 0x0003 : Windows CUI subsystem (コンソールアプリはこれ) 0x0005 : OS/2 CUI SubSystem 0x0007 : Posix CUI subsystm 0x0008 : native Windows 9x driver 0x0009 : Windows CE system 0x000A : EFI application 0x000B : EFI driver(boot services) 0x000C : EFI driver(run-time services) 0x000D : EFI ROM image 0x000E : XBOX system 0x0010 : Boot application |