Я пытаюсь создать неуправляемую COM-библиотеку DLL с помощью ATL, которая отражает C # DLL, которую я ранее создал. Однако, когда я добавлял методы в интерфейс, я столкнулся с проблемой и не смог найти решение. Для иллюстрации приведу интерфейс, написанный на C #:
public unsafe interface IUserIDA
{
[DispId(1)]
void SwitchCriteria(ref double intensity, ref double minMass, ref double maxMass, ref bool selectIntensity, ref long numOfDepCycles);
[DispId(2)]
void ChargeStateParam(ref short minCharge, ref short maxCharge, ref bool doChargeState);
[DispId(3)]
void InclusionList(ref double intensity, ref double theList, ref short numOfItems);
[DispId(4)]
void ExclusionList(ref long exRTWindow, ref double theMassList, ref long theRTList, ref short numOfItems);
[DispId(5)]
void OtherCriteria(ref long smartFilterTime, ref double isoExclusionWin, ref double massTolerance, ref bool isPPM);
[DispId(6)]
void IsotopeMatchParam(ref double theMassList, ref double theAbundanceList, ref short numOfItems, ref double abTolerance, ref double maTolerance);
[DispId(7)]
void InitIDA();
[DispId(8)]
void SurveySpec();
[DispId(9)]
void NextScan(double* selectedMasses, double* SelectedIntensities, long* selectedCharges, int itemCount);
}
Когда я попытался воспроизвести это в своем проекте ATL (с использованием Visual Studio 2008), я обнаружил, что ряд типов данных не указан: булевы и целочисленные типы. Какой тип следует использовать?