DllImport - типы C для типов .NET - PullRequest
2 голосов
/ 01 апреля 2011

У меня есть функция DLL

DLLExport int PatchSomething(char*, char*, DWORD, unsigned char*, unsigned short int);

, но не могу полностью передать параметры в .NET

F #:

модуль RNInvoke

open System
open System.Runtime.InteropServices
open Microsoft.FSharp.NativeInterop
open Microsoft.FSharp.Math

module Native =
    [<System.Runtime.InteropServices.DllImport("DesuDLL.dll",EntryPoint="add")>]
    extern int PatchSomething(char*, char*, DWORD, unsigned char*, unsigned short int);

или C #

[DllImport("DesuDLL.dll")]
private static extern int PatchSomething(char*, char*, DWORD, unsigned char*, unsigned short int);

ошибки на без знака char * и unsigned short int

1 Ответ

2 голосов
/ 01 апреля 2011

Попробуйте что-то вроде:

[DllImport("DesuDLL.dll")]
private static extern int PatchSomething(string a,string b,uint c,string d,ushort e);

Возможно, вам также потребуется добавить CharSet = Auto в атрибут. Единственное, что меня беспокоит, это указатель без знака.

...