C++ Class 库

C++ Class Library

我打开了 win32 控制台应用程序并添加了一个 class 库。我目前正在尝试使用此 class 库,但是当我使用命名空间名称设置 class 库时,我似乎无法使用字符串数据类型。它说 class "System::String" 不存在默认构造函数。我不知道如何摆脱这个错误。

头文件

#pragma once
using namespace System;
using namespace System::Net::Sockets;

namespace [Name]{

public ref class [Name]
{
private:
    System::String ipaddress;
    System::String port;

public:
    [Constructor](System::String,System::String,System::String);
};
}

CPP 文件

// 这是主要的 DLL 文件。

#include "stdafx.h"
#include "header file"

namespace [Name] {

[Name]::[Constructor](System::String ip,System::String portN,System::String protocol)
{
    ipaddress = ip;
    port = portN;

}
}

您创建了错误的项目类型。

创建一个 Win32 项目(或空项目)。

您已经创建了一个 Class 库 ,它位于 New Project 对话框中的 CLR 类别下。这意味着您得到的不是 C++ 项目,而是 C++/CLI 项目。

C++/CLI 是不同的最佳。作为记录,您的代码必须如下所示:

namespace NamespaceName
{

    public ref class ClassName
    {
    private:
        System::String^ ipaddress;
        System::String^ port;

    public:
        ClassName(System::String^ ip, System::String^ port, System::String^ protocol);
    };

}

这些 ^ 个字符表示类型是 托管句柄
将它们想象成 *,但指向托管对象。

但是考虑到您尝试遵循的教程,这不是您想要的。因此,创建一个纯 C++ 项目并使用 std::string 而不是 System::String,后者是托管类型。