c++的类型检查是非常严格的,你必须按照类型的要求来组织你的参数。有很多情况是可以通过强制类型转换来通过编译器的审察的。比如参数要求一个const char *,而你的变量是CString,你就必须通过(LPCTSTR )把CString转换成要求的类型。

解决方案 »

  1.   

    我就是想找点类似于luxes讲的类型转换技术文档。请大家赐教!!!!
      

  2.   

    如果关系到类的话,这样的文档在msdn里
    如CString,msdn里有
    You can freely substitute CString objects for const char* and LPCTSTR function arguments.
    你再看CString Class Members,它会告诉你LPCTSTR是它重载的操作苻,总之你要用到什么就
    查什么。
    如果只是一般的宏定义,如LPBYTE等,我通常是去查vc的头文件
      

  3.   

    掌握VC++里的类型匹配,是需要时间的,你首先必须熟悉c/c++的标准数据类型,然后,必须熟悉WINDOWS的标准数据类型,然后才是VC++/MFC的数据类型.在该过程中,必须注意字符串,这是最复杂的部分之一.
      

  4.   

    其实类型转换vc同于c,只是它定义了一些它自己支持的类型转换(其实就是宏),比如LPCTSTR,LPCSTR 等等,其实你只须将它简单的看作const char *就可以了。vc 之所以搞得这么复杂,就是它为了让一些东西看起来比较直观而定义了 a lot and a lot typedef(key),这也是微软的可恶之处。不过,LPCTSTR被重定义了,它可以直接将CString 类的对象转换成const char *。对于com等玩意儿,有一个通用数据类型,它的转换有相应的函数支持,你可以在msdn里查到,具体参见_variant_t条目。对于那种大写字母的数据类型可以查到它究竟是个什么基本数据类型,然后嘛,转换就是c 的数据类型转换。