C++ C++;Win32 SaveTextFile方法错误--错误原因不明
我的saveTextFile()方法有点问题。除了编译器报告错误外,所有的东西似乎都编译得很好。它不解释导致错误的原因。我使用g++作为我的编译器,该编译器由我的NetBeans IDE访问。编译器或我的代码可能有问题吗?代码如下:C++ C++;Win32 SaveTextFile方法错误--错误原因不明,c++,winapi,createfile,C++,Winapi,Createfile,我的saveTextFile()方法有点问题。除了编译器报告错误外,所有的东西似乎都编译得很好。它不解释导致错误的原因。我使用g++作为我的编译器,该编译器由我的NetBeans IDE访问。编译器或我的代码可能有问题吗?代码如下: void saveTextFile(HWND hwnd) { GetWindowText(GetDlgItem(hwnd,IDC_MAIN_EDIT), buffer, sizeof(buffer));//dont wo
void saveTextFile(HWND hwnd)
{
GetWindowText(GetDlgItem(hwnd,IDC_MAIN_EDIT), buffer,
sizeof(buffer));//dont worry
TCHAR szFilters[] = "All\0*.*\0Text\0.txt\0";
TCHAR szFilePathName[sizeof(buffer)] = "";
OPENFILENAME ofn;
DWORD dwWritten;
HANDLE hf;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFileTitle = NULL;
ofn.nFilterIndex = 1;
ofn.lpstrInitialDir = NULL;
ofn.lpstrFilter = szFilters;
ofn.lpstrFile = szFilePathName;
ofn.nMaxFile = sizeof(buffer);
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
ofn.lpstrDefExt = "txt";
ofn.nMaxFileTitle = 0;
if(GetSaveFileName(&ofn) == TRUE) {
hf = CreateFile(ofn.lpstrFile,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
WriteFile(hf,buffer,sizeof(buffer),&dwWritten,0);
CloseHandle(&hf);
}
}
我从上到下检查了代码,没有语法错误。编译器仍然向我报告一个错误。错误:
如果仔细阅读错误消息,则它不是编译器错误。这是一个链接器错误。您没有在包含
GetSaveFileName
函数的库中进行链接。那么如何链接它?什么是库?这不是您环境文档的一部分,即如何链接到外部库吗?我没有为此使用Netbeans,但在某个地方有一个选项可以添加一个库来链接。请参阅此函数的文档和库
部分。该库很可能命名为libcommdlg32。a
或类似名称。IIRC,g++for Windows能够直接读取DLL的导出表,而不需要单独的导入库。因此,需要将Comdlg32.dll
添加到链接命令中,我在哪里可以找到库?如果仔细阅读错误消息,它不是编译器错误。这是一个链接器错误。您没有在包含GetSaveFileName
函数的库中进行链接。那么如何链接它?什么是库?这不是您环境文档的一部分,即如何链接到外部库吗?我没有为此使用Netbeans,但在某个地方有一个选项可以添加一个库来链接。请参阅此函数的文档和库
部分。该库很可能命名为libcommdlg32。a
或类似名称。IIRC,g++for Windows能够直接读取DLL的导出表,而不需要单独的导入库。因此,需要将Comdlg32.dll
添加到链接命令中,我在哪里可以找到库?