我正在尝试在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
我认为这些是通用错误,可以通过简单地使用正确的变量来解决。
有谁知道怎么做?
答案 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*
已经是字符串,则删除演员表;否则找到要传递给函数的字符串。