我希望具有更多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);
}