0
我试图调用GetOpenFileName这样的:GetOpenFileName触发断点
int main(int argc, char* argv[])
{
OPENFILENAME ofn; // common dialog box structure
wchar_t szFile[260]; // buffer for file name
HWND hwnd; // owner window
HANDLE hf; // file handle
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
wchar_t title[500]; // to hold title
GetConsoleTitle(title, 500);
HWND hwndConsole = FindWindow(NULL, title);
ofn.hwndOwner = hwndConsole;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = L"All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// Display the Open dialog box.
if (GetOpenFileName(&ofn)==TRUE)
hf = CreateFile(ofn.lpstrFile,
GENERIC_READ,
0,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
(HANDLE) NULL);
的PROG停止(消息:example.exe引发了断点(不是一个我放置))在“如果(GetOpenFileName(& ofn)== TRUE)“当我休息时,我收到一条消息,说明没有可用的源。 如果我没有中断,只需按继续,对话框就会弹出并按预期工作。我究竟做错了什么? 我只注意到它的作品没有在释放模式的问题...
你在混合使用Unicode和ANSI字符串......我很惊讶这个编译。某些字符串以“L”作为前缀,但您明确地调用了几个Win32函数的ANSI版本。现在是2012年:十多年来,所有内容都已经完全符合Unicode。 –
它是断点还是第一次机会异常? –
消息说“遇到了断点” – Lumpi