アカウント名:
パスワード:
ライブラリを使ってよいなら、こういうコードを書くより strtol()の利用を考えるべきでは?少なくとも base を指定できる分、このマクロよりも汎用性が高い。
逆の言い方をすると。マクロにするなら base ぐらい指定できなくちゃ駄目だ。10進数オンリーなマクロなんて役に立たない。# 11進数以上に対応するとなると難しくなるが、2以上9以下に対応するのは簡単だろう?
この場合のwsprintfはWin32APIとして使っているので、Win32APIにはないstrtol関数は利用できません。
もしかしてMASMからC言語のライブラリを利用する方法もあるのでしょうか?
あって当然。
いいかい? アセンブラは「CPUができることはすべて指定できる」のだよ??VC++でできてMASMでできないことなど何一つとしてない。
#include <stdio.h> intmain( int argc, char *argv[] ){ printf( "hello world\n" );}
というファイルをVC++あたりでコンパイルしてご覧。その際に /S をつけるんだ。
上記のコードの MASM 版が出来上がるから。
あとは、「そのMASM版コードをどうやって exe にするのか」をVC++に実行させてみれば、必要なライブラリをどうやってくっつければいいのかも含めて、判る。
strtol(3)を使いたければ、同じようにしてCのサンプルコードを作り、そこから アセンブラコードを吐かせて、アセンブラコードから .exe を作る方法を調べればよい。たいていはライブラリをリンクする方法と、どのライブラリにどの関数が含まれているのかさえ判ればよい。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
最初のバージョンは常に打ち捨てられる。
wsprintf() を使いながら strtol() を使わない理由は? (スコア:1)
ライブラリを使ってよいなら、こういうコードを書くより strtol()の利用を考えるべきでは?
少なくとも base を指定できる分、このマクロよりも汎用性が高い。
逆の言い方をすると。マクロにするなら base ぐらい指定できなくちゃ駄目だ。10進数オンリーなマクロなんて役に立たない。
# 11進数以上に対応するとなると難しくなるが、2以上9以下に対応するのは簡単だろう?
fjの教祖様
Re:wsprintf() を使いながら strtol() を使わない理由は? (スコア:1)
この場合のwsprintfはWin32APIとして使っているので、
Win32APIにはないstrtol関数は利用できません。
もしかしてMASMからC言語のライブラリを利用する方法もあるのでしょうか?
By KMY
Re:wsprintf() を使いながら strtol() を使わない理由は? (スコア:1)
あって当然。
いいかい? アセンブラは「CPUができることはすべて指定できる」のだよ??
VC++でできてMASMでできないことなど何一つとしてない。
というファイルをVC++あたりでコンパイルしてご覧。その際に /S をつけるんだ。
上記のコードの MASM 版が出来上がるから。
あとは、「そのMASM版コードをどうやって exe にするのか」をVC++に実行させてみれば、必要なライブラリをどうやってくっつければいいのかも含めて、判る。
strtol(3)を使いたければ、同じようにしてCのサンプルコードを作り、そこから アセンブラコードを吐かせて、アセンブラコードから .exe を作る方法を調べればよい。たいていはライブラリをリンクする方法と、どのライブラリにどの関数が含まれているのかさえ判ればよい。
fjの教祖様