こんばんわ~ 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:ビルドエラーについて
main関数の引数はあっていますか?
windowsプログラミングはあまり詳しくないので力ないなれないかもしれませんが、
ちょっとプログラムを見せてもらえませんか?
windowsプログラミングはあまり詳しくないので力ないなれないかもしれませんが、
ちょっとプログラムを見せてもらえませんか?
Re:ビルドエラーについて
早速のご回答有難う御座います!
>この辺で解決出来そうです。
で、自分なりに考えて見ます。
コードは以下の感じです。
#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;
}
>この辺で解決出来そうです。
で、自分なりに考えて見ます。
コードは以下の感じです。
#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:ビルドエラーについて
こんばんわ。
> やり方が間違っているためか、ビルドエラーになってしまいます。
関数の引数の型と実際に引数としてしている型に互換性がないと思われます。
lstrcpyをやめて、 strcpyを使ってみてはどうでしょうか。
> やり方が間違っているためか、ビルドエラーになってしまいます。
関数の引数の型と実際に引数としてしている型に互換性がないと思われます。
lstrcpyをやめて、 strcpyを使ってみてはどうでしょうか。
Re:ビルドエラーについて
管理人さん、こんにちは^^
ご回答有難う御座いますm(_ _)m
to 管理人さん
VisualStudioから直接コードを貼り付けたら、
化けていました… ごめんなさい(>_<)
人に訊く時はちゃんと確認しないと…。ですね^^;
おっしゃる通り、SYSTEMTIME tm; でインスタンスの生成です^^
※角煮か~、 自分でつくるとはかなりマメですね^^
居酒屋で良く食べます~w
Justyさん、お久しぶりです^^
ちょっと今時間ないので、後ほどトライしてみます!
取り急ぎ、お礼のご挨拶まで^^
今日も雨か…。<!--24-->
ご回答有難う御座いますm(_ _)m
to 管理人さん
VisualStudioから直接コードを貼り付けたら、
化けていました… ごめんなさい(>_<)
人に訊く時はちゃんと確認しないと…。ですね^^;
おっしゃる通り、SYSTEMTIME tm; でインスタンスの生成です^^
※角煮か~、 自分でつくるとはかなりマメですね^^
居酒屋で良く食べます~w
Justyさん、お久しぶりです^^
ちょっと今時間ないので、後ほどトライしてみます!
取り急ぎ、お礼のご挨拶まで^^
今日も雨か…。<!--24-->