LPTSTR s="d:\\";
lstrcat(s,"test.bmp");
想要得到d:\test.bmp
得到的结果始终是 d:\,    lstrcat 不起作用,熟悉的人请给我讲讲怎么写这个连接语句

解决方案 »

  1.   

    TCHAR s[MAX_PATH] = {0};
    lstrcat(s,"d:\\");
    lstrcat(s,"test.bmp");
      

  2.   

    楼上的是错的,错误:不能将参数从TCHAR转换为LPTSTR
      

  3.   

    s的大小是定了的,所以lstrcat不管用,s的大小要大于两个子串的和
      

  4.   

    同意 flyelf(空谷清音) 
    TCHAR s[MAX_PATH] = {"d:\\"};
    lstrcat(s,"test.bmp");不可能出错的啊
      

  5.   

    你看到的结果已经是正确了的
     d:\test.bmp 是能被系统所识别的地址和文件名
    你如果得到 d:\\test.bmp,只能在程序编译这个前使用,编译后如果得到 d:\\test.bmp就不正常了~
      

  6.   

    #include <afx.h>
    #include<iostream.h>
    int main()
    {
    char s[100];
    strcpy(s,"d:\\");
    lstrcat(s,"test.bmp");
    cout<<s;
    return 0;}lstrcat(s,"d:\\");这个函数的第一个参数必须有足够的空间容纳连接后的字符串
      

  7.   

    语句没问题,小第还有疑问,
    我用string.reverseFind() 在字符串c:\temp\test.bmp 截取出"test",是CString 类型的
    怎么把他连接到一个 TCHAR 里面呢,比如前面提到那个 TCAHR S[]
    如果s里面是d:\   连接后得到d:\test.bmp ,一个TCHAR ,一个CString ,我尝试了很就都不行
      

  8.   

    why not requisition more memory for storing string for variable "s"
      

  9.   

    char s[100];
    strcpy(s,"d:\\");
    lstrcat(s,"test.bmp");
    用字符数组就可以解决了。