C#アプリケーションでDelphi 7で作成されたDLL(ハードウェアIDエクストラクタ)を使用する必要があります。C#のDelphi 7でコンパイルされたDLLを使用
このDLLによってエクスポートされた機能は以下のとおりです。
エクスポート機能:
// CPU
function GetCPUSpeed: Double;
function CPUFamily: ShortString; { Get cpu identifier from the windows registry }
function GetCpuTheoreticSpeed: Integer; { Get cpu speed (in MHz) }
function IsCPUIDAvailable: Boolean; Register;
function GetCPUID (CpuCore: byte): ShortString;
Function GetCPUVendor: ShortString;
// RAM
function MemoryStatus (MemType: Integer): cardinal; { in Bytes }
function MemoryStatus_MB (MemType: Integer): ShortString; { in MB }
// HDD
function GetPartitionID (Partition : PChar): ShortString; { Get the ID of the specified patition. Example of parameter: 'C:' }
function GetIDESerialNumber(DriveNumber: Byte): PChar; { DriveNr is from 0 to 4 }
私は(明らかに)Delphiでその文字列を知って終了し、バイト(ASCII)ですnullではありません。しかし、私はこれらのDelphiの文字列をC#にどのようにマッピングするかについての手がかりはありません。
ありがとうございました。
あなたは間違っていますが、長い文字列*はDelphiでヌルターミネーションされているため、PCharに型キャストしてC文字列のように使用できます。 – mghie
@mghie、いいえ、OPは間違っていません。あなたは長い文字列については正しいですが、コードサンプルは短い文字列を使用します。 –
ジョー、そういうわけで、私は長い文字列を書いたのです。質問には、「Delphiの文字列(文字列)がヌルで終了していないことがわかりました」と述べています。 – mghie