VS2005编译VC6的程序报错

cokeliu 2011-06-07 05:21:06
原来一直用VC6. 现在项目需要用VC2005. 将原来在VC6下编译工作正常的程序移到VS2005下编译一大堆错误.
error C2664: 'A64ENC_INIT' : cannot convert parameter 2 from 'TCHAR [260]' to 'const char *'
函数编译出错的地方是:
typedef A64ENC_RESULT STDCALL A64ENC_INIT(
const char *inPath,
const char *outPath,
int BitRate,
A64ENC_INFO *pInfo);
{...}
A64ENC_INIT* m_pfnInit;
TCHAR m_atszEncodedFile[260];

if (m_pfnInit(ptszWavFile, m_atszEncodedFile, dwConvBitRate, &A64Info))
以上这句报错:error C2664: 'A64ENC_INIT' : cannot convert parameter 2 from 'TCHAR [260]' to 'const char *'
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cokeliu 2011-06-07
  • 打赏
  • 举报
回复
我强制转换成
if (m_pfnInit((const char*)ptszWavFile, (const char*)m_atszEncodedFile, dwConvBitRate, &A64Info))
编译这里没问题了, 另外一个地方出问题.
m_pfnInit = (A64ENC_INIT*)GetProcAddress(m_hDllModule, _T("A6400_Enc_Init"));
报错:error C2664: 'GetProcAddress' : cannot convert parameter 2 from 'const wchar_t [15]' to 'LPCSTR'

我使用的是VS2005默认的UNICODE模式.
秦剑 2011-06-07
  • 打赏
  • 举报
回复
好像的ASSII与UNICODE的问题,改一下工程属性或是:
改const char为const TCHAR
winginsky 2011-06-07
  • 打赏
  • 举报
回复
编码问题吧,VC是ASCII编码,VS2005是uicode编码,LZ试试可以不用uicode编码。但我觉得还会有其他问题。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧