下午好,
问题 #1
我有一个神秘的问题,我可以毫无问题地调用我定义的类,但是如果我尝试向构造函数添加一个参数,并用一个参数实例化该类,它会给出两个LNK2001
错误,一个是构造函数,一个是一个用于析构函数。
error LNK2001: unresolved external symbol "public: __thiscall socket_h::~socket_h(void)" (??1socket_h@@$$FQAE@XZ)
error LNK2001: unresolved external symbol "public: __thiscall socket_h::socket_h(char const *)" (??0socket_h@@$$FQAE@PBD@Z)
代码如下:
类头:
class socket_h{
protected:
;//...
public:
socket_h(const char*);
int receive_data(char* szBuffer);
int send_data(char* szMessage);
~socket_h(void);
};
课程来源:
class socket_h{
protected:
;//...
public:
socket_h()
{
socket_h("192.168.5.100");
}
socket_h(const char* ip_address)
{
;//...;
}
//...
~socket_h(void)
{
closesocket(sClient);
WSACleanup();
}
};
调用函数:
private: System::Void read_socket_Click(System::Object^ sender, System::EventArgs^ e) {
socket_h accelerometer("192.168.5.100");
}
问题 #2
我有一个跟进错误。
我仍在为上述问题寻求帮助,但为了节省时间,我在类中添加了一个额外的方法并将调用函数更改为:
private: System::Void read_socket_Click(System::Object^ sender, System::EventArgs^ e) {
socket_h accelerometer();
accelerometer->setAddress("192.168.5.100", 80);
}
但是,我现在收到错误:
error C2227: left of '->setAddress' must point to class/struct/union/generic type 1664 1
我似乎做的一切都是正确的,我不明白为什么会发生这种情况。谢谢你。