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
,后者是托管类型。
我打开了 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
,后者是托管类型。