1
該功能的C#簽名應該是什麼? (爲PInvoke的)PInvoke signiture BSTR FAR *
DWORD GetVatAccount(COleDateTime dtDateTime, BSTR FAR* strResult)
該功能的C#簽名應該是什麼? (爲PInvoke的)PInvoke signiture BSTR FAR *
DWORD GetVatAccount(COleDateTime dtDateTime, BSTR FAR* strResult)
[DllImport("test.dll")]
private static extern int GetVatAccount(
double dtDateTime,
StringBuilder strResult
);
或:
[DllImport("test.dll")]
private static extern int GetVatAccount(
double dtDateTime,
[MarshalAs(UnmanagedType.BStr)]ref string strResult
);
日期和雙可以用DateTime.FromOADate和DateTime.ToOADate方法來完成之間的轉換。
返回類型是int還是uint?在所有的Windows操作系統中工作。 和BSTR FAR *的東西呢? – 2010-07-05 09:23:48
兩者都應該工作,但確實'uint'看起來更合適。 – 2010-07-05 09:24:19
我很好奇如何爲'COleDateTime'傳遞'double'。 'COleDateTime'有兩個成員,'DATE m_dt'和'DateTimeStatus m_status'。 'DATE'是'typedef double DATE',並且如果它只包含這個變量,我會看到這*如何工作。但是'm_status'的值需要來自某處,不是嗎? – 2012-12-05 05:50:22