我将一段纯文本放在剪贴板上(copy)再读出来(paste),在98上可以在2000上就不行,在2000上调通在98上就不行,怎么回事?

解决方案 »

  1.   

    你用的什么方法啊?可能API不同吧?
      

  2.   

    先看看会不会是 UNICODE 带来的问题:
    用一串纯英文的字符串试一下
      

  3.   

    我是从csdn上搜索的别人的用法如下:
    ......................................
    下面是copy:
    if(OpenClipboard())
    {
    HGLOBAL hglbCopy=::GlobalAlloc( GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT, strClip.GetLength()*(sizeof(TCHAR))+1);
    if( hglbCopy == NULL ) return;
    lptstrCopy =(char* )GlobalLock(hglbCopy);
    memcpy(lptstrCopy,strClip,strClip.GetLength()*sizeof(TCHAR));
    GlobalUnlock(hglbCopy);
    EmptyClipboard();
    SetClipboardData(CF_TEXT,lptstrCopy);
    CloseClipboard();
    .......................................
    其中strClip是CString类,我将纯英文字符串放在里面
    下面是paste:
    char* cClip;
    if(OpenClipboard())
    {
    HGLOBAL hglb = GetClipboardData(CF_TEXT); 
    if(hglb==NULL) return;
    cClip = (char *)GlobalLock(hglb); 
    GlobalUnlock(hglb);
    CloseClipboard();          }