アプリ版:「スタンプのみでお礼する」機能のリリースについて

--------------------構成: 01 - Win32 Debug--------------------
コンパイル中...
text.cpp
リンク中...
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/01.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

01.exe - エラー 2、警告 0

な、なんだ??
何が起こったんだ??
教えてください。

A 回答 (4件)

Win32 Applicationとは、WinMainから開始されるイベント駆動型のプログラム。


Win32 Console Applicationとは、mainから開始される昔ながらのプログラム。

と、簡単にくくってしまったところで納得行かないでしょうし、実際にはWinMainから始まってもイベント駆動型ではないプログラムも作成できますから。

コンパイラのオプションをよく調べてみますと、/Subsystem:windowsってのが見つかると思うのですよ。これがあると、WinMainから始まるはずだ、とコンパイラは考えるわけですね。
逆に、/Subsystem:consoleと書かれていた場合、mainから始まるはずだ、と考えるわけです。

では、/Subsystemの指定がない場合には、mainがあれば、consoleのつもり、WinMainがあれば、windowsのつもりでコンパイルされるとのこと。

Win32 Applicationで新規作成すると、/Subsystem:windowsになっています。

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0
この回答へのお礼

詳しいんですね。
とても参考になりました。
ありがとうございました。

お礼日時:2001/05/09 07:43

補足読みました。



フリーソフト作成者ねぇ・・・私もそうですが。
一応慣れないうちはウィザードを使ってもいいかと
思います。

ただ、補足を見た限りでは、以下の方法でコンパイル
するだけで充分だと思います。
1.Visual C++を起動する。
2.新規作成ボタンを押す(メニューでなくツールバー)
3.出てきた画面に下のソースを貼り付ける。
4.メニューの「ビルド」「ビルド」を選択し、ビルド。
5.なにやら聞いてくるけど、すべて「はい」を押す。
以上。

ついでにいうのであれば、ANSI Cの勉強をするので
あれば、PC-UNIXのCCか、WindowsであればLSI-Cを
お薦めしますよ。
#コンソールでコンパイルすることになりますが・・・

ではでは☆
    • good
    • 0
この回答へのお礼

ありがとうございました。
うまくいきました。
やる気出てきたよ。頑張ります。

お礼日時:2001/05/09 07:40

補足のソースコードそのままでコンパイル出来て実行出来ました。



 エラーの内容:
 そのままですね。WinMainシンボルがないよって言っているのです。
 そんなもん使っていないって言われるかもしれませんが、プロジェクトの作成方法が間違っている可能性が高いので、プロジェクトの作り方から補足下さい。

 ちなみに、ウィザードは仕組みを理解して使えば便利です。よ。

 私は、”Win32 Console Application"でプロジェクトを作成して、組込みプリヘッダーの使用しないにして、コンパイル・リンクして、EXEを作成して実行しました。
    • good
    • 0
この回答へのお礼

Win32 Applicationで作りました。
Win32 Console Applicationと何が違うのですか?
初心者ですからもう少し詳しくお願いします。
ありがとうございました

お礼日時:2001/05/08 17:29

基本的にVisual C++でプログラムを作成するときには


アプリケーションウィザードで作成する(Windowsの
プログラム)かmain()関数を含むプログラムを作成して
それをコンパイルするかです。

ソースファイルの中身を見ないと詳しいことは
分かりませんが、Windowsプログラムを作成する
のであれば、アプリケーションウィザードを使用
することをお薦めしますよ。
#うまくリンクさせれば、ウィザードはいらない
#のだと思いますが、ウィザードを使うのが一番
#簡単だと思いますよ。

ではでは☆
    • good
    • 0
この回答へのお礼

ありがとうございます。
ソースはこちら。

/*
計算を行う
*/

#include <iostream.h>

int main(void)
{
int x;
int y;

cout << "x ?";
cin >> x;

cout << "y ?";
cin >> y;

cout << "x+yは"<<x+y<<"です\n";

return (0);
}

ちなみに解説書に載ってました。
フリーソフトを作っている方に教えていただいたのですが、
ウィザードは使わないほうがいいとの事です。
(おまえ初心者なんだから使えよって感じですが、
僕自身こだわるタイプですんで。)

このエラーの意味を聞いたのですが、説明不足でした。
どういう意味ですか?

お礼日時:2001/05/08 16:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!