CString str1="VK_MENU";
CString str2="F";
下面进行转换:PBYTE pbBuffer1=(PBYTE)(str1.GetBuffer(0));
PBYTE pbBuffer2=(PBYTE)(str2.GetBuffer(0));
现有一个函数:key(BYTE a,BYTE b)调用时若是这样调用  key(*pbBuffer1,*pbBuffer2);
则传进去的值是 V 和 F应该怎么办啊??????

解决方案 »

  1.   

    你看一下BYTE定义,是无符号 字符型,就是说只有一个字节
      

  2.   


    可是这么写 key(VK_MENU,'F')
    就是正确的!!!!!!!!!
      

  3.   

    肯定是V跟F,不是V跟F你想要什么?
    因为你传进去的就是单个BYTE,并不是传入指针。
    如果想要获得"VK_MENU"跟"F",你的key函数定义就要改成下面的
    key(PBYTE a,PBYTE b);
    key(pbBuffer1,pbBuffer2);
      

  4.   

    key(VK_MENU,'F')
    这样就是正确的啊~~~~~~
      

  5.   

    原来楼主是想将字符串"VK_MENU",转换成宏定义值VK_MENU,这个好像就要自己加判断了
    if(str1=="VK_MENU")
       key(VK_EMNU,*pbBuffer2);
    if(str1=="VK_CONTROL")
       key(VK_CONTROL,*pbBuffer2);
      

  6.   

    将 CString str1="VK_MENU"; 定义为 BYTE 类型好了VK_MENU 是一个 BYTE 类型
     
      

  7.   

    key(BYTE a,BYTE b)
    这个函数本身就有问题。
      

  8.   

    key(*pbBuffer1,*pbBuffer2);这样写就行了
    CString str1="VK_MENU";
    CString str2="F";key((LPCSTR)str1,(LPCSTR)str2);
      

  9.   

    还有,函数 key(BYTE a,BYTE b)改为key(LPCSTR a,LPCSTR b)