1

私はc++ dllを持っています。この dll を C# コードで使用する必要があります。このdllで:

struct UserRecord
{
  int               login;
  //some properties here
}
struct CServerInterface
{
  int         __stdcall ClientsAddUser(UserRecord *inf);
  //some other functions here
}

構造体で関数を呼び出すにはどうすればよいですか? 私はこれを試します:

[DllImport("WebRegistration.dll")]
public extern static int ClientsAddUser(ref UserRecord inf);

public struct UserRecord
{
//properties here
}

static void Main(string[] args)
{
  UserRecord user = new UserRecord();
  ClientsAddUser(ref user);
}

スローされる例外: 「DLL に 'ClientsAddUser' という名前のエントリ ポイントが見つかりません」。

この関数が構造体にない場合、例外はスローされないと思います。

4

1 に答える 1

0

私は初心者ですが、これを試してください。CServerInterface と UserRecord を「パブリック クラス」にします。例;

public class CServerInterface() {int __stdcall ClientsAddUser(UserRecord *inf);}
于 2012-01-18T09:24:12.890 に答える