1
Quelle devrait être la signature C# pour cette fonction? (Pour Pinvoke)PInvoke signiture BSTR FAR *
DWORD GetVatAccount(COleDateTime dtDateTime, BSTR FAR* strResult)
Quelle devrait être la signature C# pour cette fonction? (Pour Pinvoke)PInvoke signiture BSTR FAR *
DWORD GetVatAccount(COleDateTime dtDateTime, BSTR FAR* strResult)
[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.
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 *? –
Les deux devraient fonctionner, mais en effet 'uint' semble plus approprié. –
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? –