“PVOID”与“LPCTSTR”类型的参数不兼容

时间:2015-07-15 13:42:35

标签: c++ visual-studio-2013

我正在尝试在FTDI芯片上创建一个文件,以便我可以编写和输出数据。我从手册中得到了创建文件,需要编写以下代码行:

ftHandleFile = FT_W32_CreateFile((PVOID)LocId, GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);

但是,我收到以下错误

  

错误1错误C2664:'FT_HANDLE   FT_W32_CreateFile(LPCTSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)”   :无法将参数1从'PVOID'转换为   'LPCTSTR'c:\ users \ caristid \ documents \ visual studio   2013 \ projects \ ftd2xx \ ftd2xx \ ftd2xx.cpp 100 1 ftd2xx

     

IntelliSense:“PVOID”类型的参数与“LPCTSTR”类型的参数不兼容c:\ Users \ caristid \ Documents \ Visual Studio 2013 \ Projects \ ftd2xx \ ftd2xx \ ftd2xx.cpp 100 35 ftd2xx

我认为这些是通用错误,可以通过简单地使用正确的变量来解决。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

编译器期望第一个参数是public static string URLReader(string url) { try { WebClient webClient = new WebClient(); Stream fileStream = webClient.OpenRead(url); using (StreamReader reader = new StreamReader(fileStream)) { return reader.ReadToEnd(); } } catch { MessageBox.Show("URL Not exists or you are not connected to internet!", "Problems!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return ""; } } 类型,它是“Const TCHAR STRing的长指针”。
通过将LPCTSTR投射到LocId,您将传递PVOID作为第一个参数 如果void*已经是字符串,则删除演员表;否则找到要传递给函数的字符串。