NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

Re: DOS-Extender(Re: 段ボールマシン )

投稿者: さん  2003/11/21 15:13  MLNo.77   [メール表示]

皆さんこんにちは。持主です。

ところで、泊何水さん、


とのこと、使い勝手はなかなか良好です。但し、Microsoft Cコンパイラ
及びその親戚筋のコンパイラにはCのソースがコメントとして入った
アセンブルリストを吐き出す機能が付いていて、普通のデバッガでデバッグ
するときに便利なのですが、この機能がついていません。もっとも、
まあまあまともなデバッガはおまけについてきますし、もし必要なら
objファイルを逆アセンブルするユーティリティが付いていますので
これを使えばすむことです。第2に、附属のリンカのWlinkの操作が、
MS製のLink及びPDSのVALと異なっています。特に、Windowsプログラム
など、プロテクトモードのプログラムを書く時必要なモジュール定義
ファイルの書式が異なります。オプション類は大体同じようです。
まあ、これは慣れの問題でしょう。で、第3に、版権の関係上、
OpenWatcomのコンパイラにはWindowsのSDKは付いてきません。Windows
で動くプログラムが書きたい人は別途SDKを入手する必要があります。

で、このWin3.1用のSDKですが、Win3.1用のVisual C++を持っている
のでちょっとした悪戯を思いつきました。

1) Visual C++に入っているLIBW.LIBをWatcom-CのLIB\LIB286\WIN
ディレクトリに、WINDOWS.LIBという名前でコピーする

2) INCLUDE環境変数にVC++のINCLUDEディレクトリを追加する

3) LIB環境変数にVC++のLIBディレクトリを追加する

こうすることでVC++に入っているWindows3.1の関数群が使えるように
なるはずです。そして、試しに次のようなプログラムを書いてコンパイル
してみました。

#include <windows.h>
int PASCAL WinMain( HANDLE hInstance, HANDLE hPrevInst,
LPSTR lpCmdLine, int nCmdShow )
{
MessageBox(NULL, "Hello, World!!", "FOO",
MB_OK | MB_TASKMODAL );
return 0;
}

結果、VC++の附属ライブラリとincludeファイルはWindows3.1 SDKの
代役を果たせることが判明しました。

で、水城さん、


とのこと、私の手元にはLinuxマシンでWindowsプログラムを動かす
ためのエミュレータ(Wine)があります。Digital Marsも入手でき次第
実験してみることにします。

それでは、また。


このエントリーをはてなブックマークに追加

メールへの返信はMLのメンバーしかできません。

更新順メールリスト