我希望具有更多C++知识的人能够为我提供帮助。我正在尝试从在托管C++ DLL中创建的类在C#中创建对象数组。我不知道发生了什么。我能够运行该应用程序并对其进行构建,因此设置类数组似乎可以正常工作,但是当我从该数组调用函数时,它从不研究托管DLL。我已经找到了它,但是它根本不起作用。该应用程序也不会因任何错误而失败。有趣的是,当我删除该类的数组并仅在该类正常且花哨的时候才启动该类。请帮助我找出解决方法。

//C#

public ClientBridge[] netlobby;

private void connectToLobby(int lobbyIndex)
{
//lobbyIndex = 0

netlobby[lobbyIndex] = new ClientBridge();

connectLobby[lobbyIndex] = netlobby[lobbyIndex].MMK_Connect(host, lobbyport);

}




//C++ DLL

// This class is the managed reference class
public ref class ClientBridge
{
    public:
        ClientBridge();
        virtual ~ClientBridge();
        bool MMK_Connect(String^ hostpass, UInt16 port);
};

最佳答案

看起来好像没有初始化数组

public ClientBridge[] netlobby = new ClientBridge[MAX_BRIDGES]; // <- gotta initialize

private void connectToLobby(int lobbyIndex)
{

netlobby[lobbyIndex] = new ClientBridge();

connectLobby[lobbyIndex] = netlobby[lobbyIndex].MMK_Connect(host, lobbyport);

}

10-08 18:35