Oct_32第五日:一些小错误!

来源:互联网 发布:网络与老干部什么意思 编辑:程序博客网 时间:2024/04/28 17:22

Oct_32第五日:一些小错误!

error C2665: AfxMessageBox: 2 个重载中没有一个可以转换所有参数类型

解决方案:

(1): AfxMessageBox("xxx");变成 :AfxMessageBox(_T("xxx"));

(2) 选择 项目菜单->项目属性->配置属性->常规->字符集,改为 未设置

 

1. extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。
2.
如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。

 

即:在Download.cpp文件中的代码:

// CDownload 对话框

extern  SERVER_INFO serverinfo[MAXIPNUMBER]; //

extern  CLIENTPARAM ClientParam;

运行的时候出现:

Download.obj : error LNK2001: 无法解析的外部符号"struct SERVER_INFO * serverinfo" (?serverinfo@@3PAUSERVER_INFO@@A)

Download.obj : error LNK2001: 无法解析的外部符号"struct CLIENTPARAM ClientParam" (?ClientParam@@3UCLIENTPARAM@@A)

./Debug/EyesomMonitorFile.exe : fatal error LNK1120: 2 个无法解析的外部命令

以上出错解决方案:

Download.h头文件中添加代码如下:

class CDownload : public CDialog

{

    DECLARE_DYNAMIC(CDownload)

public:

    CDownload(CWnd* pParent = NULL);   // 标准构造函数

    SAVE_INFO infor[MAXVIEWNUM];

    SERVER_INFO serverinfo[MAXIPNUMBER]; //不要在.cpp文件中声明

    CLIENTPARAM ClientParam;

提 要:

vc GetWindowRect

函数原型:

BOOL GetWindowRectHWND hWndLPRECTlpRect);

参数:hWnd:窗口句柄。
函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRectHWND hWndLPRECTlpRect);
参数:

hWnd:窗口句柄。
lpRect
:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。
返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。

若想获得更多错误信息,请调用GetLastError函数。

 

问题: error C2664: strcpy: 不能将参数2 从“CString”转换为“const char *

        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

解决方案

原代码:

strcpy(buffer, ClientParam.m_csDownLoadPath);

strcat(buffer,csIP);

修改为:strncpy(目标,源,长度)

strcpy(buffer,(LPSTR)(LPCTSTR)ClientParam.m_csDownLoadPath);

strcat(buffer,(LPSTR)(LPCTSTR)csIP);

原因“csIP”必须为const char *类型的。而给的是CString.

 

 

// CLocalFilePlay dialog

#define TIMER_INTERVAL 500

#define USED_PORT 99

extern SERVER_INFO serverinfo[MAXIPNUMBER];

extern  CLIENTPARAM ClientParam;

BOOL g_bCapPic=FALSE;

-==========================================

出现错误 正在链接...

LocalFile.obj : error LNK2001: 无法解析的外部符号"struct SERVER_INFO * serverinfo" (?serverinfo@@3PAUSERVER_INFO@@A)

LocalFile.obj : error LNK2001: 无法解析的外部符号"struct CLIENTPARAM ClientParam" (?ClientParam@@3UCLIENTPARAM@@A)

./Debug/EyesomMonitorFile.exe : fatal error LNK1120: 2 个无法解析的外部命令

 

解决方案

extern SERVER_INFO serverinfo[MAXIPNUMBER];

extern  CLIENTPARAM ClientParam;

变成

SERVER_INFO serverinfo[MAXIPNUMBER];

CLIENTPARAM ClientParam;

 

error C2665: AfxMessageBox: 2 个重载中没有一个可以转换所有参数类型

解决方案:

(1): AfxMessageBox("xxx");变成 :AfxMessageBox(_T("xxx"));

(2) 选择 项目菜单->项目属性->配置属性->常规->字符集,改为 未设置

 

1. extern用在变量声明中常常有这样一个作用,你在*.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在*.h中并用extern来声明。
2.
如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。

 

即:在Download.cpp文件中的代码:

// CDownload 对话框

extern  SERVER_INFO serverinfo[MAXIPNUMBER]; //

extern  CLIENTPARAM ClientParam;

运行的时候出现:

Download.obj : error LNK2001: 无法解析的外部符号"struct SERVER_INFO * serverinfo" (?serverinfo@@3PAUSERVER_INFO@@A)

Download.obj : error LNK2001: 无法解析的外部符号"struct CLIENTPARAM ClientParam" (?ClientParam@@3UCLIENTPARAM@@A)

./Debug/EyesomMonitorFile.exe : fatal error LNK1120: 2 个无法解析的外部命令

以上出错解决方案:

Download.h头文件中添加代码如下:

class CDownload : public CDialog

{

    DECLARE_DYNAMIC(CDownload)

public:

    CDownload(CWnd* pParent = NULL);   // 标准构造函数

    SAVE_INFO infor[MAXVIEWNUM];

    SERVER_INFO serverinfo[MAXIPNUMBER]; //不要在.cpp文件中声明

    CLIENTPARAM ClientParam;

提 要:

vc GetWindowRect

函数原型:

BOOL GetWindowRectHWND hWndLPRECTlpRect);

参数:hWnd:窗口句柄。
函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRectHWND hWndLPRECTlpRect);
参数:

hWnd:窗口句柄。
lpRect
:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。
返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。

若想获得更多错误信息,请调用GetLastError函数。

 

问题: error C2664: strcpy: 不能将参数2 从“CString”转换为“const char *

        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

解决方案

原代码:

strcpy(buffer, ClientParam.m_csDownLoadPath);

strcat(buffer,csIP);

修改为:strncpy(目标,源,长度)

strcpy(buffer,(LPSTR)(LPCTSTR)ClientParam.m_csDownLoadPath);

strcat(buffer,(LPSTR)(LPCTSTR)csIP);

原因“csIP”必须为const char *类型的。而给的是CString.

 

 

// CLocalFilePlay dialog

#define TIMER_INTERVAL 500

#define USED_PORT 99

extern SERVER_INFO serverinfo[MAXIPNUMBER];

extern  CLIENTPARAM ClientParam;

BOOL g_bCapPic=FALSE;

-==========================================

出现错误 正在链接...

LocalFile.obj : error LNK2001: 无法解析的外部符号"struct SERVER_INFO * serverinfo" (?serverinfo@@3PAUSERVER_INFO@@A)

LocalFile.obj : error LNK2001: 无法解析的外部符号"struct CLIENTPARAM ClientParam" (?ClientParam@@3UCLIENTPARAM@@A)

./Debug/EyesomMonitorFile.exe : fatal error LNK1120: 2 个无法解析的外部命令

 

解决方案

extern SERVER_INFO serverinfo[MAXIPNUMBER];

extern  CLIENTPARAM ClientParam;

变成

SERVER_INFO serverinfo[MAXIPNUMBER];

CLIENTPARAM ClientParam;

 

原创粉丝点击