Mam metodę chcę zaimportować z pliku DLL i ma podpis:DllImport i char *
BOOL GetDriveLetter(OUT char* DriveLetter)
próbowałam
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(byte[] DriveLetter);
i
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(StringBuilder DriveLetter);
, ale żadne z nich nie zwróciło niczego w zmiennej DriveLetter.
Co oznacza wartość UnmanagedType.I1? – Malfist
@Malfist, Wartość I1 mówi CLR, aby zarządzał wartością jako 1-bajtową liczbą całkowitą. W tej próbce było niepoprawnie, ponieważ I4 jest poprawną wartością (zaktualizowaną nieco wcześniej). Dlaczego warto sprawdzić ten wpis na blogu, który napisałem na temat ustawiania wartości bool: http://blogs.msdn.com/jaredpar/archive/2008/10/14/pinvoke-and-bool-or-should-i-say-bool .aspx – JaredPar
Kiedy robię I4, otrzymuję MarshalDirectiveException – Malfist