【发布时间】:2013-04-18 19:37:23
【问题描述】:
下午好,
问题 #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
我似乎做的一切都正确,但我不明白为什么会发生这种情况。谢谢。
【问题讨论】:
-
你为什么要加分号?!
-
抱歉,这是针对问题 #1 还是 #2?构造函数中的分号在那里,而不是我在其中的代码。
标签: c++