Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;Win32 SaveTextFile方法错误--错误原因不明_C++_Winapi_Createfile - Fatal编程技术网

C++ C++;Win32 SaveTextFile方法错误--错误原因不明

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

我的saveTextFile()方法有点问题。除了编译器报告错误外,所有的东西似乎都编译得很好。它不解释导致错误的原因。我使用g++作为我的编译器,该编译器由我的NetBeans IDE访问。编译器或我的代码可能有问题吗?代码如下:

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
添加到链接命令中,我在哪里可以找到库?