--------------------構成: 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

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

このQ&Aに関連する最新のQ&A

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で質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセル2000:見た目「1:01」を文字列「1:01」に変換したい

お世話になります。
A1に「1:01」というデータがあり、シリアル値は「0.0423611111111111」という具合です。それをA2にTEXT関数を使うなどの方法で、見た目とおり、文字列で「1:01」と変えたいのです。よろしくご指導お願いいたします。

Aベストアンサー

=TEXT(A1,"h:mm")
で文字列化できるかと

Q34:33と01:34:33の表示方法・・・Excel 2003

Excel 2003を使用しています。

ランニングの記録として時間の表示を34分33秒の時は34:33(00:34:33)、1時間34分33秒の時は01:34:33と表示させたいのですが、セルの書式設定(表示設定)でどのような分類、種類を選択すればいいのでしょうか?

Aベストアンサー

入力はどのようにしていますか
0:34:33、01:34:33 と入力して
34:33、1:34:33 と表示

セルの書式設定・分類・ユーザー定義
[<0.0416666666666666]mm:ss;h:mm:ss

こんな事かな

Q列、行番号などをDebug.Printするには?.

よろしくお願いします
作りたいものがあって、最近マクロの勉強を初めた者です

以下ことをDebug.Printしたいのですが(Debug.Printそのものも今日知りました)
どのように書いたらいいでしょうか
RowだったりRowsだったり、また、前に何か付いたりで、頭の中が整理できていません

質問1
マクロは Private Sub Worksheet_SelectionChange(ByVal Target As Range) に書けばいいのでしょうか?

質問2
知りたいのは、シート左端の行番号をクリックしたときに得られる値で
行番号とか他に分かる値すべて知りたいです(Debug.Printしたいです)

質問3
同じく、列のABCD等をクリックした時に得られる値で
列番号とか、他に得られるすべての数値をDebug.Printしたいです

質問4
あるセル範囲をマウスで選択した時も同様に得られる数値を知りたいです

教えてもらう身分で質問数が多すぎますが、どなたか教えてください

Aベストアンサー

○何をしたいのか
→何かを「選択した」ときに、その選択した(された)モノの情報を調べたい

⇒どうしたら良いのか
(方法1:セル範囲等)
選択されたモノに紐づいている「イベントプロシジャ」(自動起動マクロ)が存在している場合は、それを使って「選択されたモノ」それ自体を取得、情報を取り出す

(方法2:たとえば図形等)
選択されたモノにイベントが紐づいていない場合、手動マクロを起動し、「今選択されているモノ」の情報を取り出す



○方法1の具体的な展開の基本
例えばセル範囲の場合:
選択される可能性のあるセル範囲としては、次の状況が考えられます
 一個のセルを選択した場合
 ヒトカタマリの(矩形の)セル範囲
 とびとびのセル範囲
 列を1列あるいは複数列(カタマリ・とびとび)
 行を1行あるいは複数行(カタマリ・とびとび)

これらのケースは、いずれもWorksheet_SelectionChange(あるいはWorkbook_SheetSelectionChange)イベントによって取得できます。具体的に何を選択した時、イベントが何を取得しているのかケースごとに調べたり、あるいは具体的なマクロでどう処理を進めるのか漏れなく考えなければいけません。

手順:
シート名タブを右クリック、コードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_SelectionChange(byval Target as excel.range)
msgbox target.address
end sub

上述したようなさまざまな「セルの選び方」に応じて、具体的に何が(どのようなタイミングで)targetに取得されたか、(回答をフンフン読んで分かった気になるんじゃなくて)実際にあなたの手を動かして確認してください。



○ご質問の具体的な回答
練習用のイベントプロシジャを消去、改めて下記をコピー貼り付ける

private sub Worksheet_SelectionChange(byval Target as excel.range)
debug.print target.address,
debug.print target.areas.count,
debug.print target.row,
debug.print target.rows.count,
debug.print target.column,
debug.print target.columns.count
end sub

○何をしたいのか
→何かを「選択した」ときに、その選択した(された)モノの情報を調べたい

⇒どうしたら良いのか
(方法1:セル範囲等)
選択されたモノに紐づいている「イベントプロシジャ」(自動起動マクロ)が存在している場合は、それを使って「選択されたモノ」それ自体を取得、情報を取り出す

(方法2:たとえば図形等)
選択されたモノにイベントが紐づいていない場合、手動マクロを起動し、「今選択されているモノ」の情報を取り出す



○方法1の具体的な展開の基本
例えばセル範囲の場合:
選択さ...続きを読む

QA01セル>B01セルだったら、C01セルに+1

A01セル>B01セルだったら、C01セルに+1と表示
A01セル<B01セルだったら、C01セルに-1と表示

この方法を、教えてください。

Aベストアンサー

ついでに
=IF(OR(A1="",B1=""),"",IF(A1>B1,1,IF(A1<B1,-1,0)))

Q”2009/7/2 9:01:00” の日にちのみの変更。

 初めまして、よろしくお願いします。
 一つのセル内(A1内)に”2009/7/2 9:01:00”と入力されているデーター表
       A         B
1 2009/7/2 9:01:00
2 2009/7/2 9:13:00
3 2009/7/2 9:15:00
4 2009/7/2 9:25:00
5 2009/7/2 9:33:00
6     :
:     :
 があります。ここで年、月、時間はそのままで、日にち部分のみを変更したシートを複数作りたいと思っています。できましたら関数式で、日にちを打ち込めば総て表せるようにしたいと思います。何か良い方法がありましたら、よろしくお願いします。

Aベストアンサー

例えば、各シートのセルB1に日にちを入力するとして、セルA1に、

=DATE(YEAR(Sheet1!A1),MONTH(Sheet1!A1),$B$1)+TIME(HOUR(Sheet1!A1),MINUTE(Sheet1!A1),SECOND(Sheet1!A1))

と入力して、A1をA2以下にコピーします。

YEAR(Sheet1!A1)でSheet1のセルA1の年を、
MONTH(Sheet1!A1)でSheet1のセルA1の月を、
HOUR(Sheet1!A1)でSheet1のセルA1の時を、
MINUTE(Sheet1!A1)でSheet1のセルA1の分を、
SECOND(Sheet1!A1)でSheet1のセルA1の秒を、
それぞれ抽出し、日にちを$B$1と絶対参照形式で指定して、
DATE関数及びTIME関数の引数としています。


このカテゴリの人気Q&Aランキング

おすすめ情報