• ベストアンサー

アセンブラのWIN32に関する質問

以下のコードをMASM32でアセンブル(コンパイル)した所 cannot open file :windows.inc と言うエラメッセージがでました 多分これは、インクルード(?)したファイルwindows.incが開けないと言う意味だと思うのですが そのコードは、入門サイトからコピ&ペーストしてきた物なので、エラーの修正する方法がわかりません 解る方が居たら教えてください(ソースはこの掲示板の制限文字数を越えてしまう為示せません)

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

・インクルードするファイルのあるフォルダ位置を環境変数に設定しておく ・インクルードするファイルのあるフォルダ位置をMASMの起動オプションで指定する ・インクルードするファイル windows.inc をソースファイルと同じフォルダに置く 上記3つの対処方法がありますが、書いている意味が判らない場合は、アセンブルを行う以前の部分についての学習が不足しています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • masm32の設定

    プログラミング初心者です。 この度アセンブリ言語を勉強しようと思い、MASM32 version10をダウンロードし、C:\masm32 というディレクトリにインストールしました。 次に、PATHにC:\masm32\binを追加して,mlコマンドのパスの設定をしました。 そして、以下のようなプログラムを作りました。 ファイルはD:\masm\hello.asmとしました。 ; hello.asm   include \masm32\include\masm32rt.inc   .code start:   print "hello, assembler",13,10   exit end start これをアセンブルしようと思い、 D:\masm>ml /c /coff hello.asm として実行すると Micorosoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: hello.asm hello.asm(3) : fatal error A1000: cannnot open file : \masm32\include\masm32rt.inc と出てエラーになってしまいます。インクルードファイルにパスが通っていないのでしょうか。いろいろ調べてみましたが、分かりません。 どのようにすれば解決できるでしょうか。 力を貸してください。よろしくお願いします。

  • マイコンソフト

    テキストエディタ(メモ帳)で作った文書を、プログラム「A38H.EXE」でコマンドプロンプトにより、アセンブルしようとしていますが 0 20(E) CANNOT OPEN FILE のエラメッセージがでてしまいます。対処法を教えて下さい、よろしくお願いします。

  • MASMのincludeの設定

    MASMのincludeの設定 現在はソースのinclude \masm32\include\windows.incなどをフルパスに置換してコンパイルしています。 AUTOEXEC.BATのPATHにincludeフォルダのフルパスを追加するとソースの置換をせずにコンパイルできると思いますがAUTOEXEC.BATは変更したくありません。 MASMの設定ファイルやml.exeの設定ファイルなどでincludeフォルダのフルパスを指定するような解決方法はありませんか?

  • NASMとMASMの違い

    NASMとMASNの違いってなんでしょうか? NASMは今日趣味でちょこっと触っただけです。 MASMは触ったことはありません。 実際に動くアセンブリ言語のソースを見てみようと思い、 海外のサイトから適当に*.asmのソースをダウンロードしました。 ソースを覘くと、 \masm32\include\windows.inc と明らかにMASMの何かを参照しています。 NASMではコンパイルできる気がしません。 NASMとMASMでは記述法方が変わるのでしょうか? NASMではMASMで書かれたソースはコンパイルは不可能なのでしょうか? 素人の私が根本的に勘違いしている可能性もあります。 ご存知の方がおられましたら、ご伝授よろしくお願いします。

  • 実行ファイルと実行モジュールについて。

    実行ファイルは、例えばソースコードをコンパイルしたものを実行ファイルと呼び、実行モジュールは、例えば、ソースコードをアセンブル、 コンパイルインタープリタの複数のファイル群の事でしょうか?で、違いは、ファイルは 1つか複数の違いという事でしょうか?教えていただけないでしょうか?すみません。

  • fortran:includeできないとエラーがでます

    unix上にtelnetしてプログラムをつくっているのですが、fortranのプログラム中でinclude文を実行するとコンパイル時に Cannot open include file ’ヘッダーファイル名’ と出ます。 読み込むヘッダーファイルは市販のものをインストールしたものでこのファイルは/usr/includeにシンボリックリンクの形で存在しリンク先も存在します。ちなみにヘッダーファイル名を実在しないものにしても同じエラーメッセージが出ます。 なにが原因なのでしょうか。お心当たりのある方はよろしくお願いいたします。

  • アセンブリ:FCのファイルオープンについて

    アセンブリ:FCのファイルオープンについて ファイルオープンのファンクションコールについて質問させてください。 うまく伝えられるか不安なので、いま陥っている現象を順番に書かせていただきます。 まずエディタで、 ---------------------------------- MOV AH , 3DH MOV AL , 00H MOV DX , offset FNAME INT 21H FNAME DB 'C:\xyz.txt',00H ---------------------------------- という簡易なプログラムを記述しました(擬似命令は省いています) これをアセンブルすると、 --------------------------------------- CS:0100 B43D MOV AH,3D CS:0102 B000 MOV AL,00 CS:0104 BA0901 MOV DX,0109 (*注) CS:0107 CD21 INT 21 CS:0109 43 INC BX ・ ・ --------------------------------  となるのですが、このとき AX=0003  CY となり、ファイルオープンに失敗してしまいます。 理由がまったくわからないので、デバックの直打ちで 0200 DB 'C:\xyz.txt' と格納してから、(*注)である命令を MOV DX,0200 に打ちかえれば、 AX=0005  NC となって無事にオープンできるみたいです。 なお、ファイルオープンに限らず、ファイル作成でも同じでした。 エディタでアセンブル( DX , 0109 ) だと失敗し、 デバッグ直打ち( DX , 0200 ) だと成功します。 これはいったい、どういう理由からなのでしょうか? 何冊か本を読んでみたのですが、書かれているのはコードの記述のみなので困っています。 わかる方がおられましたら、ご教授ください。 WINXP:MASM32で行っています。

  • わかりにくい質問かもしれませんが。

    分割コンパイルを行っているのですが、うまくいかず、解決法も見出せないので、質問させてもらいます。 ファイル1 #include <stdio.h> #include "ファイル2.c" FILE *f1,*f2; int main(void){ if((f1==fopen("file1.txt"..... ..... } if((f2==........ ..... } for(i=0;i<3;i++){ file2he(); } fclose(f1); fclose(f2); fopen(stdout,"終了しました。"); return 0; } ファイル2 #include <stdio.h> extern FILE *f1,*2; void file2he(void){ ............... } ってやって、コンパイルすると、code in header プリコンパイルヘッダーが作成できない。と警告がでてきます。  ヘルプをみると、解決法みたいのが書かれているのですが、まったくわかりません。 まず、1.プリコンパイルヘッダーってなんですか?    2.code in headerって?    3.非インライン関数?    4.どうすれば、この警告は消えるのでしょうか(プログラム的に正しくした     い?)  リンクすると、ほとんど同じプログラムなのに、動く奴と、動かない奴があります。わかる範囲でいいです。教えてください。よろしくお願いします。

  • gtkに関する質問

    GTKというライブラリで、ソースを書いてコンパイルした所 数え切れない程のエラーがでてしまう(実際のソースコードは10行未満)インクルードファイルに色々構文エラーがあるみたいですが、リンクに指定するライブラリを間違えたのでしょうか。 もし間違えたのならどのライブラリとリンクすれば良いのか教えてください。(これかなと思うライブラリを色々リンクしてみましたが無理でした) ちなみに、コンパイルしたOSはLinuxでTurboLinuxというディストリビューションです。 そしてコンパイルに使ったコマンドは下記の様に書きました gcc -o GTK gtk.c -I /usr/include/gtk -lgtk -L /usr/lib

  • 自作インクルードファイル

    こんにちわ。 いまVC++6.0で開発しようとしています。 自作のincludeファイルを作成し,親プログラムをコンパイルしようと しますが,そのincludeファイルが親プログラムと同じパスに あるときはコンパイルできますが, 別のフォルダに置くと, fatal error C1083: インクルード ファイルがオープンできません。 'XXXXXX.H': No such file or directory cl.exe の実行エラー と出てしまいます。 そこで[設定]の"インクルードファイルのパス"の箇所を 自作インクルードファイルがある場所に設定したのですが, やはり同じエラーメッセージが出ます。 どうすれば読めるようにできるのでしょうか? 教えてください。 よろしくお願いします。