以前作成したC#dllをミラーリングするATLを使用してアンマネージCOM dllを作成しようとしています。しかし、インタフェースにメソッドを追加するときに、問題を見つけて解決策を見つけることができませんでした。私はC#で記述されたインタフェースが含まれます説明するために:私は(のVisual Studio 2008を使用して)私のATLプロジェクトでこれを再現しようとするとATLを使用するパラメータのタイプ
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);
}
を私は多くのデータ型がないことを発見しましたリストされた:ブール型と整数型。どんなタイプを使うべきですか?
または私は何かが不足しているか、それほど些細なことです:c#のブール値はC++のboolであり、c#の整数はC++のintです。あなたが求めているのは本当ですか? – Flot2011
@ Flot2011メソッドの追加オプションを試してみると、パラメータタイプを選択するためのメニューがありますが、bool *またはint *が表示されません。 variant_boolがありますが、それは異なって定義されていると思います。 – Travis
私はVisual Studioを大変使い慣れていません。これはCOMとATLを初めて使用したときです。私は単純にintまたはboolを使うことができますが、私は知らないし、可能性のあるタイプのリストの省略のために懸念していました。 – Travis