UINT ThreadFunc(LPVOID p)
{
CFile * pFile = (CFile*)p;
wchar_t Title[200];
ULONGLONG FileLength = pFile->GetLength();
char * buf = new char[FileLength]; for(int i = 0; i < FileLength; i++)
{
//pFile->Read(buf, 1)
} return 0;
}1>------ 已启动生成: 项目: 客户端, 配置: Debug Win32 ------
1>正在编译...
1>客户端.cpp
1> WINVER not defined. Defaulting to 0x0600 (Windows Vista)
1>c:\users\administrator\desktop\网络\客户端\客户端.cpp(39) : warning C4244: “初始化”: 从“ULONGLONG”转换到“unsigned int”,可能丢失数据
1>c:\users\administrator\desktop\网络\客户端\客户端.cpp(37) : warning C4101: “Title”: 未引用的局部变量
1>正在链接...
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmtd.lib(newaop.obj) 中定义
1>C:\Users\Administrator\Desktop\网络\Debug\客户端.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
1>生成日志保存在“file://c:\Users\Administrator\Desktop\网络\客户端\Debug\BuildLog.htm”
1>客户端 - 2 个错误,2 个警告
========== 生成: 成功 0 个,失败 1 个,最新 1 个,跳过 0 个 ==========

解决方案 »

  1.   

    char * buf = new char[FileLength];
    改成这样试试:
    wchar_t * buf = new wchar_t[FileLength];
    这么改恐怕也不行,因为FileLength不是个固定值,所以没法分配内存,得改成固定的值才行.
    另外,你的程序是不是用的是UNICODE字符集,如果是,就得把char改成wchar_t
      

  2.   

    nNewLen = (UINT)FileLength;
    char * buf = new char[nNewLen];
      

  3.   

    你这段代码我加在我的程序里的线程里,编绎没问题,看你的出错提示,是和new这个关键字重定义了.你看看是不是别的地方的问题
      

  4.   

    char * buf = (char *) malloc (sizeof(char)*FileLength);