0
コンパイルエラーが発生しました。私がしようとしているのは、GetVolumeInformationを使用して、各自が一意のドライブをシリアル化することです。どんな助けでも大歓迎です。ここでGetVolumeInformationエラー
は私のコードです:ここでは次に
#include "stdafx.h"
#include "Head.h"
using namespace System;
using namespace System::Collections::Generic;
using namespace System::ComponentModel;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Text;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Windows::Forms;
using namespace System::IO;
using namespace System::Security::Cryptography;
using namespace System::Security::Principal;
namespace SE
{
String ^Base::GetSerial(String ^strDriveLetter)
{
UInt32 serNum = 0;
UInt32 maxCompLen = 0;
StringBuilder ^VolLabel = gcnew StringBuilder(256); // Label
UInt32 VolFlags = UInt32();
StringBuilder ^FSName = gcnew StringBuilder(256); // File System Name
strDriveLetter += ":\\"; // fix up the passed-in drive letter for the API call
bool Ret = GetVolumeInformation(strDriveLetter, VolLabel, safe_cast<UInt32>(VolLabel->Capacity), serNum, maxCompLen, VolFlags, FSName, safe_cast<UInt32>(FSName->Capacity));
return Convert::ToString(serNum);
}
}
は私Head.hです:
#pragma once
using namespace System;
using namespace System::Collections::Generic;
using namespace System::ComponentModel;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Text;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Windows::Forms;
using namespace System::IO;
using namespace System::Security::Cryptography;
using namespace System::Security::Principal;
namespace SE
{
private ref class Base
{
private:
static bool GetVolumeInformation(String ^PathName, StringBuilder ^VolumeNameBuffer, UInt32 VolumeNameSize, UInt32 %VolumeSerialNumber, UInt32 %MaximumComponentLength, UInt32 %FileSystemFlags, StringBuilder ^FileSystemNameBuffer, UInt32 FileSystemNameSize);
};
}
しかし、私は私が取得していますコンパイルする場合:
error LNK2022: metadata operation failed (80131187) : Inconsistent method declarations in duplicated types (types: SE.Base; methods: GetVolumeInformationA): (0x06000008).
は私が持っていますか何か問題でも?おかげ
Head.hファイルが原因で、同じクラス宣言が複数の翻訳単位に含まれるようになり、リンカーはそれらの間の不一致を検出します。 * private *を削除することから始めます。これは無効です。 –