コンソールアプリケーションの空のプロジェクト
VisualStudioでC++プロジェクトを作る際、
「コンソールアプリケーション、プロジェクト、空のプロジェクト、メイクファイルプロジェクト」
からプロジェクトの種類を選びますが、このとき
「コンソールアプリケーションを選び、「アプリケーションウィザードで「□空のプロジェクト」にチェックを入れて作った」プロジェクトと、
「空のプロジェクトを選択して作った」プロジェクトはどう違うのでしょうか?
先日プログラムを書いていたのですが、全く同じ文章であるにもかかわらず前者ではコンパイルエラーが起こり、後者は問題なく起動するということがありました。
プロジェクトの種類によってどのような動作をする際に差が出るのでしょうか?
よろしくお願いします。
なお、上記の「全く同じ文章であるにもかかわらず前者ではコンパイルエラーが起こり、後者は問題なく起動した」プログラムは以下のもので、「58行目と63行目のCLASS_NAMEにご完成がないとエラーが出ました」。
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
bool CreateMainWindow(HINSTANCE, int);
LRESULT WINAPI WinProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE hinst;
const char CLASS_NAME[] = "WinMain";
const char APP_TITLE[] = "Hello World";
const int WINDOW_WIDTH = 400;
const int WINDOW_HEIGHT = 400;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLinc, int nCmdShow)
{
MSG msg;
if (!CreateMainWindow(hInstance, nCmdShow)){ return false; }
int done = 0;
while (!done)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT){ done = 1; }
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
bool CreateMainWindow(HINSTANCE hInstance, int nCmdShow)
{
WNDCLASSEX wcx;
HWND hwnd;
wcx.cbSize = sizeof(wcx);
wcx.style = CS_HREDRAW | CS_VREDRAW;
wcx.lpfnWndProc = WinProc;
wcx.cbClsExtra = 0;
wcx.cbWndExtra = 0;
wcx.hInstance = hInstance;
wcx.hIcon = NULL;
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
wcx.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcx.lpszMenuName = NULL;
wcx.lpszClassName = CLASS_NAME;
wcx.hIconSm = NULL;
if (RegisterClassEx(&wcx) == 0){ return false; }
hwnd = CreateWindow(CLASS_NAME, APP_TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, (HWND)NULL, (HMENU)NULL, hInstance, (LPVOID)NULL);
if (!hwnd){ return false; }
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
return true;
}
お礼
回答ありがとうございます。
補足
自動同期されるのはいいのですが、同期された写真を別のプロジェクトフォルダに移したり、消したりした後でも、空のプロジェクトフォルダだけは残ってしまい、消してもまたできてしまいます。直近のフォトストリームのみならいいのですが、過去何ヶ月分もの空のフォトストリームプロジェクトが残ってしまうのはどうにかならないでしょうか?