C ++类库

时间:2016-01-12 01:21:24

标签: class c++-cli

我打开了win32控制台应用程序并添加了一个类库。我目前正在尝试使用这个类库,但是当我使用命名空间名称设置类库时,我似乎无法使用字符串数据类型。它表示类" 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;

}
}

1 个答案:

答案 0 :(得分:1)

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

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

您已创建类库,它位于新建项目对话框中的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,这是一种托管类型。