c++ - 与 "LPCWSTR"类型的参数不兼容

标签 c++ visual-c++

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <dos.h>
using namespace std;

class Dir
{
public:
    char* cat;
    Dir()
    {
        cout << "(C:/*)\n";
        cat = new char[50];
        cin >> cat;
    }

    void virtual ShowFiles()
    {
    }

};


class Inside : public Dir
{
public:
    void virtual ShowFiles()
    {
        HANDLE hSearch;
        WIN32_FIND_DATA pFileData;

        hSearch = FindFirstFile(cat, &pFileData);
        if (hSearch != INVALID_HANDLE_VALUE)
            do
            {
                //  if ((pFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
                cout << pFileData.cFileName << "\n";
            } while (FindNextFile(hSearch, &pFileData));
            FindClose(hSearch);
    }
};
int main()
{
    Dir *obj1[2];
    obj1[1] = new Inside;
    obj1[1]->ShowFiles();
    return 0;
}

所以我有一个程序,我需要用动态字符显示目录中的所有文件,但它可以在 Borland C++ 中编译,但在 Visual Studio 15 + Resharper 中它不起作用。 严重性代码描述项目文件行 “char *”类型的错误(事件)参数与“LPCWSTR”类型的参数不兼容

最佳答案

要在 Visual C++ 中编译您的代码,您需要使用多字节字符 WinAPI 函数而不是宽字符函数。

项目 -> 属性 -> 高级(或旧版本的常规)-> 字符集选项设置为使用多字节字符集

also see the screenshot

关于c++ - 与 "LPCWSTR"类型的参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001284/

相关文章:

c++ - 为什么 MSVC 大发脾气编译宏,而 G++ 是关于禅宗的?

c - 替代方案; STDBOL 未找到

c++ - 将 vector append 到 vector 的最佳方法

c++ - 命名空间 'vsnprintf' 中没有名为 'std' 的成员;你是说 'vsprintf' 吗?

c++ - 如何获取嵌套 std::initializer_list 的大小?

c++ - 内联汇编 (__asm) block 是否会阻止功能优化?

c++ - 写文件过程崩溃!关闭

visual-c++ - 向 VC++ 应用程序添加 AES 加密

c++ - boost::scoped_ptr 和 C++ 中的 STL

C++ std::deque 复制构造函数问题