Это мое определение метода:Как передать список объектов COleDateTime как SAFEARRAY *
IMSAToolsLibraryInterface : IUnknown
{
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall SetPathXML (
/*[in]*/ BSTR strPathXML,
/*[out]*/ __int64 * iResult) = 0;
virtual HRESULT __stdcall SavePublisherData (
/*[out]*/ __int64 * iResult) = 0;
virtual HRESULT __stdcall ReadPublisherData (
/*[out]*/ __int64 * iResult) = 0;
virtual HRESULT __stdcall Test () = 0;
virtual HRESULT __stdcall AddPublisher (
/*[in]*/ BSTR strName,
/*[in]*/ BSTR strNotes,
/*[in]*/ enum Gender eGender,
/*[in]*/ enum Appointed eAppointedAs,
/*[in]*/ enum Serving eServingAs,
/*[in]*/ VARIANT_BOOL bUseForDemonstrations,
/*[in]*/ VARIANT_BOOL bAvailableMidweek,
/*[in]*/ VARIANT_BOOL bAvailableWeekend,
/*[in]*/ SAFEARRAY * listDatesNotAvailable) = 0;
};
теперь имеет новый последний параметр, который является на самом деле массив объектов DateTime в методе C# DLL. Я немного почитал эту тему, и мне кажется, что от MFC
мне нужно использовать COleSafeArray
, чтобы создать безопасный массив подходящих записей.
Меня это смущает. Я в основном хочу иметь возможность передавать список значений COleDateTime
как этот параметр SAFEARRAY*
, и я не знаю, как это сделать.
Возможно, вы захотите использовать тег C++; отношение к C# является тангенциальным в лучшем случае – BradleyDotNET