1

我目前正在使用 Visual Studio C++ 生成 .dll 以便在两个程序之间传输数据:本质上,一个程序会在事件发生时通知另一个程序。我正在尝试通过 TcP 客户端套接字来执行此操作。

我的头文件是这样的:

#include <string>

using namespace std;

extern "C"
{
    __declspec (dllexport) bool trackerConnect( char* ipAddress, int port );
    __declspec (dllexport) void sendEvent ( char* ev);
    __declspec (dllexport) void disconnect();
}

我的 .cpp 文件看起来像这样

#define WIN32_LEAN_AND_MEAN

#include "logEvents.h"
#using "system.dll"

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text;

TcpClient^ logClient;
NetworkStream^ logStream;

bool trackerConnect( char* ipAddress, int port )
{
    /*Connects to server, gets stream, and returns whether the connection was
    successful or not*/
}

void sendEvent ( char* ev )
{
    /*Converts ev into a Byte array and sends it to the server to notify it 
    that an event has occurred*/
}

void disconnect ()
{
    //closes the connection with the server
}

鉴于所有三个函数都需要访问 TcPClient,我将其声明为全局变量。但是,当我编译时,我收到错误 C3145:全局或静态变量可能没有托管类型。如果我不能将 TcPClient 声明为全局变量,我应该如何在三个函数中使用它?

4

0 回答 0