Cannot convert 想了两天了,如何会这样呢
Cannot convert 想了两天了,怎么会这样呢?
我定义了俩动态字节数组,为啥WriteFile和ReadFile时候都出现了这样的编译错误呢?
DynamicArray<byte> ByteSend,ByteReceive;
DWORD lrc,lrr;
int i;
ByteSend.Length =Memo1->Lines->Count;
for(i=0;i<ByteSend.Length ;i++)
ByteSend[i]=StrToInt(Trim(Memo1->Lines->Strings[i]));
if(hComm==0)
{
ShowMessage("not open yet!!");
return;
}
WriteFile(hComm,ByteSend,ByteSend.Length ,&lrc,NULL);//这句咋了???
[C++ Error] Unit1.cpp(74): E2034 Cannot convert 'TByteDynArray' to 'const void *'
[C++ Error] Unit1.cpp(74): E2342 Type mismatch in parameter 'lpBuffer' (wanted 'const void *', got 'TByteDynArray')
------解决方案--------------------
不要在 WriteFile 中使用动态数组,动态数组是用类模板实现的,分配的地址并不一定连续
------解决方案--------------------
强制类型转换试试!
我定义了俩动态字节数组,为啥WriteFile和ReadFile时候都出现了这样的编译错误呢?
DynamicArray<byte> ByteSend,ByteReceive;
DWORD lrc,lrr;
int i;
ByteSend.Length =Memo1->Lines->Count;
for(i=0;i<ByteSend.Length ;i++)
ByteSend[i]=StrToInt(Trim(Memo1->Lines->Strings[i]));
if(hComm==0)
{
ShowMessage("not open yet!!");
return;
}
WriteFile(hComm,ByteSend,ByteSend.Length ,&lrc,NULL);//这句咋了???
[C++ Error] Unit1.cpp(74): E2034 Cannot convert 'TByteDynArray' to 'const void *'
[C++ Error] Unit1.cpp(74): E2342 Type mismatch in parameter 'lpBuffer' (wanted 'const void *', got 'TByteDynArray')
------解决方案--------------------
不要在 WriteFile 中使用动态数组,动态数组是用类模板实现的,分配的地址并不一定连续
------解决方案--------------------
强制类型转换试试!
- C/C++ code
WriteFile(hComm,(LPCVOID)ByteSend,ByteSend.Length ,&lrc,NULL);