我打开了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;
}
}
答案 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
,这是一种托管类型。