2010-07-05 4 views

Répondre

2
[DllImport("test.dll")] 
private static extern int GetVatAccount(
    double dtDateTime, 
    StringBuilder strResult 
); 

ou:

[DllImport("test.dll")] 
private static extern int GetVatAccount(
    double dtDateTime, 
    [MarshalAs(UnmanagedType.BStr)]ref string strResult 
); 

Les conversions entre les dates et le double pourrait être fait avec DateTime.FromOADate et DateTime.ToOADate méthodes.

+0

Le type de retour est-il int ou uint? travailler dans toutes les fenêtres OS. et qu'en est-il de la chose BSTR FAR *? –

+0

Les deux devraient fonctionner, mais en effet 'uint' semble plus approprié. –

+0

Je suis curieux de savoir comment passer un 'double' pour' COleDateTime' fonctionne. 'COleDateTime' a deux membres,' DATE m_dt' et 'DateTimeStatus m_status'. 'DATE' est' typedef double DATE', et s'il ne contenait que cette variable, je verrais comment cela pourrait fonctionner. Mais une valeur pour 'm_status' doit venir de quelque part, non? –