Class C++类库
我打开了win32控制台应用程序并添加了类库。我目前正试图使用这个类库,但当我用名称空间名称设置类库时,我似乎无法使用字符串数据类型。它表示类System::String不存在默认构造函数。我想不出如何消除这个错误 头文件Class C++类库,class,c++-cli,Class,C++ Cli,我打开了win32控制台应用程序并添加了类库。我目前正试图使用这个类库,但当我用名称空间名称设置类库时,我似乎无法使用字符串数据类型。它表示类System::String不存在默认构造函数。我想不出如何消除这个错误 头文件 #pragma once using namespace System; using namespace System::Net::Sockets; namespace [Name]{ public ref class [Name] { private: Syst
#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项目或空项目 您已经创建了一个类库,它位于“新建项目”对话框中的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代替Strase::String,它是托管类型。C++是一个C++或C++/CLI项目吗?一个真正的Win32控制台项目不是C++ + CLI,因此你不能在这些项目中使用BCL类型,如Stry.String。还有,代码中的[/]字符还是你的名字模糊?我不知道VisualC++有什么特殊的特性,但是通常你必须包括相应的头文件来让类可用。在使用System::String之前,我看不到任何包含的标题。如果在STDAFX.H中定义了类,我建议将这个头包含在头文件中。您的代码是C++ + CLI,而不是标准C++。我已经更新了分配给你的帖子的标签,但以后请适当地给你的帖子贴上标签。我正试图遵循msdn上的本教程