コンパイラの警告 (レベル 1) C4397
DefaultCharSetAttribute は無視されます
DefaultCharSetAttribute は Microsoft C++ コンパイラによって無視されます。 DLL の文字セットを指定するには、DllImport の CharSet オプションを使用します。 詳細については、「C++ Interop (暗黙の 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{};