读书人

Cannot convert 想了两天了如何会这

发布时间: 2012-02-28 13:06:34 作者: rapoo

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 中使用动态数组,动态数组是用类模板实现的,分配的地址并不一定连续
[解决办法]
强制类型转换试试!

C/C++ code
WriteFile(hComm,(LPCVOID)ByteSend,ByteSend.Length ,&lrc,NULL); 

读书人网 >C++ Builder

热点推荐