time_tを使ったソースをコンパイルできません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
miyasan_tora

time_tを使ったソースをコンパイルできません

#1

投稿記事 by miyasan_tora » 7年前

初めて投稿させていただき、利用法も判りません。皆様よろしくお願いします。
[1] 質問文
[1.1] 自分が今行いたい事は何か
time_t を使ったソースをコンパイルしたいです。
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
プロジェクトの設定を次のようにしました。
プロジェクトのプロパティで「構成プロパティ」→「全般」
→「文字セット」→「マルチバイト文字セットを使用する」

コード:

#include <stdio.h>
#include <conio.h>
#include <time.h>

void main(){
	time_t t1, t2;
	t1=time(NULL);
	t2=time(NULL);
	printf("計時スタート の何かキーを押してください\n");
	_getch();
	time(&t1);
	printf("計時終了 の何かキーを押してください\n");
	_getch();
	time(&t2);
	printf("\n t1 = %ld t2 = %ld\n", t1, t2);
	printf("かかった時間は、%d 秒です。\n", t2 - t1);
	return;
}
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)

エラー 1 error LNK2019: 未解決の外部シンボル _WinMain@16 が
関数 ___tmainCRTStartup で参照されました。
エラー 2 error LNK1120: 1 件の未解決の外部参照
[1.4] 今何がわからないのか、知りたいのか
Visual C++ 2012 Expressのcppファイルに入れたソースを
どのように修正したらコンパイルできるか知りたいです。
[2] 環境  
[2.1] OS :Windows7 32bit
[2.2] コンパイラ名 :
Visual Studio 2012 Express for Windows Desktop
[3] その他
 ・どの程度C言語を理解しているか→今週始めました。全く知りません。
「猫でもわかるプログラミング」のC言語編第1部の一章から始めました。
13章で躓いております。
 ・ライブラリを使っている場合は何を使っているか→意味がわかりません。
よろしくお願いします。

nil
記事: 428
登録日時: 8年前

Re: time_tを使ったソースをコンパイルできません

#2

投稿記事 by nil » 7年前

プロジェクト作成の時にウィンドウズアプリケーションに設定したのではありませんか?
もう一回コンソールアプリケーションでプロジェクトを作成しなおしてみてください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: time_tを使ったソースをコンパイルできません

#3

投稿記事 by softya(ソフト屋) » 7年前

プロジェクトの作り方を間違っている様です。
「太田研究室 > Visual C++ 2010 Express プログラミング入門」
http://cvwww.ee.ous.ac.jp/vc10prog.html
2012でも同じだと思うので、こちらを参考にしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

miyasan_tora

Re: time_tを使ったソースをコンパイルできません

#4

投稿記事 by miyasan_tora » 7年前

涼雅さん、softyaさん、早速教えていただきありがとうございました。
ご指摘の通り、コンソールで実行したらOKでした。
ソースファイルがcppなのになぜコンソールなのか、
その辺はまださっぱり判りません。
体で覚えろ!と書いてあるのでとにかくこつこつやってみます。
また、教えてください。
ありがとうございました。

box
記事: 1746
登録日時: 9年前

Re: time_tを使ったソースをコンパイルできません

#5

投稿記事 by box » 7年前

miyasan_tora さんが書きました: ソースファイルがcppなのになぜコンソールなのか、
その辺はまださっぱり判りません。
ソースファイルの拡張子がcpp(つまりC++言語のソース)であることと、
作りたいプログラムがコンソールアプリケーションであるかどうかとは、別次元の話です。

1)ソースファイルの拡張子がc(つまりC言語のソース)で、作りたいプログラムがコンソールアプリケーション
2)ソースファイルの拡張子がc(つまりC言語のソース)で、作りたいプログラムがWindowsアプリケーション
3)ソースファイルの拡張子がcpp(つまりC++言語のソース)で、作りたいプログラムがコンソールアプリケーション
4)ソースファイルの拡張子がcpp(つまりC++言語のソース)で、作りたいプログラムがWindowsアプリケーション

全部あり得ます。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: time_tを使ったソースをコンパイルできません

#6

投稿記事 by softya(ソフト屋) » 7年前

cppはファイルの拡張子ですのが、ソースコードを書くところだよって意味でしかありません。
一般的にはC++のソースコードを記述しますが、C言語のコードを書いても構いません。

コンソール・アプリなのかウィンドウ・アプリなのかは別の要素で決まります。
それがプロジェクトの設定であり、このプロジェクトの設定次第で変わってしまうものなのです。
実際にはもっと複雑で、1つのアプリでウィンドウモードとコンソールモードを切り替える事も可能です。
そこら辺はもっと勉強して仕組みがわかってからで良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: time_tを使ったソースをコンパイルできません

#7

投稿記事 by YuO » 7年前

softya(ソフト屋) さんが書きました:cppはファイルの拡張子ですのが、ソースコードを書くところだよって意味でしかありません。
一般的にはC++のソースコードを記述しますが、C言語のコードを書いても構いません。
Visual C++ (Visual Studio) は拡張子でファイルの種類(CなのかC++なのかリソースなのかetc.)を判別しているので,これだけだと誤解するかもしれませんね。

Visual C++においては,/Tcまたは/TC コンパイラオプションをコンパイラであるclに渡すことで,.c以外の拡張子を持つファイルをCのソースファイルとしてコンパイルできます。
また,/Tpまたは/TP コンパイラオプションによって,.cppまたは.cxx以外の拡張子を持つファイルをC++のソースファイルとしてコンパイルできます。
MSDN: /Tc、/Tp、/TC、/TP (ソース ファイル タイプの指定)
※上記のMSDNでは,IDE上での操作を/TCおよび/TPについてのみ説明していますが,プロジェクトの代わりに個々のファイルのプロパティで行うことで/Tcや/Tp相当のことも行えます。

miyasan_tora

Re: time_tを使ったソースをコンパイルできません

#8

投稿記事 by miyasan_tora » 7年前

あれから、夢中でやってましたが、どうしても判らない質問があり再度もどってきたら
沢山の、助言がありびっくりしました。
C,C++,CPP,h などこんがらかっていました。やっと理解してきました。
遅くなりましたが、涼雅さん、softyaさん、Boxさん、YouOさんありがとうございます。

とんちんかんな質問ですが別スレッドでさせていただきます。よろしくお願いいたします。

閉鎖

“C言語何でも質問掲示板” へ戻る