我正在尝试在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


我认为这些是通用错误,只需使用正确的变量即可解决。

有人知道怎么做吗?

最佳答案

编译器期望第一个参数的类型为LPCTSTR,它是“指向Const TCHAR STRing的长指针”。
通过将LocId强制转换为PVOID,您将传入void*作为第一个参数。
如果LocId已经是字符串,则删除演员表;否则,找到要传递给函数的字符串。

关于c++ - “PVOID”与“LPCTSTR”类型的参数不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31432135/

10-13 07:57