收录查询

LNK2005错误

(1)可能你定义了和OS中DLL或者是LIB导出的相关函数相同的名字
比如说:最常见的情况是strcpy()函数不好,你定义了自己的strcpy()函数,但是这个函数是系统中DLL文件导出的函数,你需要做的是把你实现的这个比较健壮的strcpy()函数改
个名字:如改成mystrcpy()

char * mystrcpy(char * strDest,const char * strSrc)
        {
                if ((strDest==NULL)||(strSrc==NULL)) //[1]
                        throw "Invalid argument(s)"; //[2]
                char * strDestCopy=strDest;  //[3]
                while ((*strDest++=*strSrc++)!='\0'); //[4]
                return strDestCopy;
        }

或者是:
char* mystrcpy(char* dest, const char* src)
{
char* tmp = dest;

while (*tmp++ = *src++)
;

return dest;
}

/* the emplementation in Linux */
char* mystrcpy(char* dest, const char* src)
{
char* tmp = dest;

while ((*tmp++ = *src++) != '\0')
;

return dest;
}

(2)如果一个工作空间中有多个工程的时候,如果有1个工程需要使用“多线程库”,
则,你必须使用多线程库,具体设置如下:


Project settings
   |
   *--- C/C++
          |
          *--- Code generation
                       |
                       *---- Use run-time library
                                     |
                                     *---- Multithreaded

(3)不同的LIB库发生冲突,通常是LIBCMT.lib和别的库发生冲突,这时候,可以通过调整库的优先路径和禁掉libcmt.lib库来尝试下时候能够解决此类问题
posted @ 2005-05-13 12:12  ->  阅读(340)  评论(0)    收藏  举报