ビジュアル基本プロジェクトで、いくつかの列管理されたC++コードを使用するためのC++/CLIラッパーを作成しました。これは私がそれらを構築し、次のエラーがC++/CLIラッパーDLLを使用しているときに関数が見つからない
それを来た、Visual Basicプロジェクトでrefrencedとき、すなわち
bool CheckFreeSpace(LPCTSTR lpDirectoryName);
DWORD64 getFreeSpaceAvailable(LPCTSTR lpDirectoryname);
二つの機能があり、この中のコード
#pragma once
#include "E:\ARDUINO DLL\UnManagedSystemProfile\UnManagedSystemProfile\SystemProfile.h"
#include "E:\ARDUINO DLL\UnManagedSystemProfile\UnManagedSystemProfile\SystemProfile.cpp"
using namespace System;
namespace MSystemProfile {
public ref class SystemProfile
{
SysProfileInterface * System;
public:
SystemProfile();
enum class ConversionDirection:int
{
FORWARD,
REVERSE
};
enum class MemoryUnits:int
{
BYTE,KB,MB,GB
};
double getVolume();
void setVolume(float volume);
void setScreenBrightness(int brightnessvalue);
int getCurrentBatteryLife();
bool isLowOnPower();
bool isCharged();
bool isCharging();
bool CheckFreeSpace(LPCTSTR lpDirectoryName);
DWORD64 getFreeSpaceAvailable(LPCTSTR lpDirectoryname);
DWORDLONG totalVirtualMemory();
DWORDLONG usedVirtualMemory();
SIZE_T myVirtualMemoryUse();
DWORDLONG totalRam();
DWORDLONG usedRam();
SIZE_T myRamUse();
float BtoKB(float data, MemoryUnitConverter::ConversionDirection direction);
float BtoMB(float data, MemoryUnitConverter::ConversionDirection direction);
float BtoGB(float data, MemoryUnitConverter::ConversionDirection direction);
float KBtoMB(float data, MemoryUnitConverter::ConversionDirection direction);
float KBtoGB(float data,MemoryUnitConverter::ConversionDirection direction);
float MBtoGB(float data, MemoryUnitConverter::ConversionDirection direction);
float convertTo(MemoryUnitConverter::MemoryUnits sourceunit,MemoryUnitConverter::MemoryUnits destinationunit, float data);
};
}
です言ったその エラー3 'CheckFreeSpace'はサポートされていないかparameではない戻り値の型を持っていますサポートされていないタイプです。
VB.netはLPCTRSTR型をサポートしていない可能性があると私は理解しましたが、今この問題をどのように解決できますか。
また、別の問題は、C++/CLIがLPCTRSTRをサポートしている場合、VB.netを使用しない理由です。
ありがとうございます。
これはC#のbyte *またはchar *のいずれかのポインタ型です。しかし、vb.netはポインタをサポートしていません。引数の型をString ^に変更し、Marshal :: StringToHGlobalUni()などのポインタに変換します。 –