编译器警告(等级 1)C4397
已忽略 DefaultCharSetAttribute
DefaultCharSetAttribute 被 Microsoft C++ 编译器忽略。 若要为 DLL 指定字符集,请使用 DllImport 的 CharSet 选项。 有关详细信息,请参阅使用 C++ 互操作(隐式 PInvoke)。
示例
下面的示例生成 C4397。
// C4397.cpp
// compile with: /W1 /c /clr
using namespace System;
using namespace System::Runtime::InteropServices;
[module:DefaultCharSetAttribute(CharSet::Unicode)]; // C4397
[DllImport("kernel32", EntryPoint="CloseHandle", CharSet=CharSet::Unicode)] // OK
extern "C" bool ImportDefault(IntPtr hObject);
public ref class MySettingVC {
public:
void method() {
ImportDefault(IntPtr::Zero);
}
};
[StructLayout(LayoutKind::Explicit)]
public ref struct StructDefault1{};
public ref class ClassDefault1{};