ビルドエラーについて

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

ビルドエラーについて

#1

投稿記事 by yukemuri » 17年前

こんばんわ~ yukemuriです~。
いつもお世話になってます。

質問の内容は前回と同じなのですが、前回いちびっとさんから教えてもらったサイトを参考に、もう一回やってみましたが、やり方が間違っているためか、ビルドエラーになってしまいます。

(経緯)
新規作成→Win32プロジェクト(APIだからコレですよね?)→空のプロジェクト→新しい項目の追加(プロジェクトの追加)→cppファイル編集→保存後 ビルド→エラー。

---------エラー内容ここから-------------

1>WinMain.cpp
1>.\WinMain.cpp(17) : error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>.\WinMain.cpp(19) : error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>.\WinMain.cpp(21) : error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>.\WinMain.cpp(25) : error C2664: 'MessageBoxW' : 2 番目の引数を 'char [80]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
1>ビルドログは "file://e:\Documents and Settings\My Documents\Visual Studio 2005\Projects\MsgBox\Release\BuildLog.htm" に保存されました。
1>MsgBox - エラー 4、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

---------エラー内容ここまで-------------

前回の質問では、プロジェクトの追加方法が分からなく、今回は新しい項目の追加でプロジェクトの追加となっているだろうと思い、やってみましたが駄目でした(>_<)

操作方法が間違っていると思うのですが、どのようにすれば良いでしょうか。
アドバイス頂けたら幸いで御座います。

※ txtファイルは添付できないんですよね?

管理人

Re:ビルドエラーについて

#2

投稿記事 by 管理人 » 17年前

main関数の引数はあっていますか?
windowsプログラミングはあまり詳しくないので力ないなれないかもしれませんが、
ちょっとプログラムを見せてもらえませんか?

管理人

Re:ビルドエラーについて

#3

投稿記事 by 管理人 » 17年前

あ、そうだ文字コードはあっていますか?文字コードが違うとそのようなエラーが出た事があります。

管理人

Re:ビルドエラーについて

#4

投稿記事 by 管理人 » 17年前

http://rararahp.cool.ne.jp/cgi-bin/lng/ ... 030001.txt

この辺で解決出来そうです。
やはり文字コードの問題ではないでしょうか。

yukemuri

Re:ビルドエラーについて

#5

投稿記事 by yukemuri » 17年前

早速のご回答有難う御座います!
>この辺で解決出来そうです。
で、自分なりに考えて見ます。

コードは以下の感じです。

#include "windows.h"

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
SYST#includeEMTIME tm;
char s[80];
int iRet;

// 現在時刻を取得します。
GetLocalTime(&tm);

// 表示する文字列を設定します。
if ((tm.wHour >= 0) && (tm.wHour < 12)) {
lstrcpy(s, "おはようございます。");
} else if (tm.wHour < 17) {
lstrcpy(s, "こんにちは。");
} else {
lstrcpy(s, "こんばんは。");
}

// メッセージボックスに文字列を表示します。
iRet = MessageBox(NULL, s, "MsgBox", MB_OK);

// 正常終了を意味する戻り値を返します。
return 0;
}

管理人

Re:ビルドエラーについて

#6

投稿記事 by 管理人 » 17年前

SYST#includeEMTIME tm;

これなんですか?

管理人

Re:ビルドエラーについて

#7

投稿記事 by 管理人 » 17年前

SYSTEMTIME tm;
ですか?

管理人

Re:ビルドエラーについて

#8

投稿記事 by 管理人 » 17年前

ん~私の環境ではうまくコンパイルできます。
お使いの文字コードを確認してみてください。

解決しないようでしたら教えてください。

管理人

Re:ビルドエラーについて

#9

投稿記事 by 管理人 » 17年前

ちょっと角煮の材料買いに行ってきますヽ(゜▽゜)
(↑角煮作るのが好き)

Justy

Re:ビルドエラーについて

#10

投稿記事 by Justy » 17年前

 こんばんわ。

> やり方が間違っているためか、ビルドエラーになってしまいます。
 関数の引数の型と実際に引数としてしている型に互換性がないと思われます。
 lstrcpyをやめて、 strcpyを使ってみてはどうでしょうか。

yukemuri

Re:ビルドエラーについて

#11

投稿記事 by yukemuri » 17年前

管理人さん、こんにちは^^

ご回答有難う御座いますm(_ _)m
to 管理人さん
VisualStudioから直接コードを貼り付けたら、
化けていました… ごめんなさい(>_<)
人に訊く時はちゃんと確認しないと…。ですね^^;
おっしゃる通り、SYSTEMTIME tm; でインスタンスの生成です^^

※角煮か~、 自分でつくるとはかなりマメですね^^
居酒屋で良く食べます~w

Justyさん、お久しぶりです^^
ちょっと今時間ないので、後ほどトライしてみます!
取り急ぎ、お礼のご挨拶まで^^

今日も雨か…。<!--24-->

閉鎖

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