2010-07-05 80 views

回答

2
[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.FromOADateDateTime.ToOADate方法來完成之間的轉換。

+0

返回類型是int還是uint?在所有的Windows操作系統中工作。 和BSTR FAR *的東西呢? – 2010-07-05 09:23:48

+0

兩者都應該工作,但確實'uint'看起來更合適。 – 2010-07-05 09:24:19

+0

我很好奇如何爲'COleDateTime'傳遞'double'。 'COleDateTime'有兩個成員,'DATE m_dt'和'DateTimeStatus m_status'。 'DATE'是'typedef double DATE',並且如果它只包含這個變量,我會看到這*如何工作。但是'm_status'的值需要來自某處,不是嗎? – 2012-12-05 05:50:22