错误C2664:无法将参数1从“CString”转换为“LPWSTR” [英] Error C2664 : cannot convert parameter 1 from 'CString' to 'LPWSTR'

查看:876
本文介绍了错误C2664:无法将参数1从“CString”转换为“LPWSTR”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我设计了一个Win32 Dll应用程序,其中一个函数返回句柄,参数是String所以我在Dll应用程序''c''文件中使用了LPSTR,它构建成功但是当我使用该函数时是基于MFC对话的应用程序而我将CString参数传递给该函数,但它出现错误为

 错误 C2664:' :无法将参数1从'CString'转换为'LPWSTR' 



所以参数传递的是什么到那个函数?

解决方案

你可以把CString对象强制转换为const指针:)

 HANDLE测试(LPCTSTR szEntry)
{
HANDLE hRet(NULL);

// 在这里使用szEntry

< span class =code-keyword> return hRet;
}

// CString CYourDlg :: m_cszEntry
void CYourDlg :: OnTest()
{
UpdateData(TRUE);

HANDLE hEntry(Test(m_cszEntry));

// 在这里使用hEntry
}


I design one Win32 Dll application, in which one function returns handle and parameter is String so I used LPSTR in Dll application ''c'' file,it builds successfully but when I using that function is MFC dialogue based application and I passed CString argument to that function,but it gives error as

Error  C2664: ': cannot convert parameter 1 from 'CString' to 'LPWSTR'  


so what are the arguments pass to that function?

解决方案

You can cast a CString object to a const pointer :)

HANDLE Test(LPCTSTR szEntry)
{
  HANDLE hRet(NULL);

  // use szEntry here

  return hRet;
}

// CString CYourDlg::m_cszEntry
void CYourDlg::OnTest()
{
  UpdateData(TRUE);
  
  HANDLE hEntry(Test(m_cszEntry));
  
  // use hEntry here
}


这篇关于错误C2664:无法将参数1从“CString”转换为“LPWSTR”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆