BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #29155同步于 2008/8/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

C++ 在.net下传输文件遇到问题

HectorInsanE
2008/8/17镜像同步13 回复
Hello everyone, 我现在正用c++在.net 2005下做个软件,其中有一块是点对点传输文件的。 由于没有什么基础,图书馆也关了,基本上只能靠上网查资料。但是找到的好多都是用C#或者VB写的。走投无路只好试着把语法改成C++的,选择用TCPCLIENT和listener来发送和接收。 但是这两句: .......... //用于接收的缓冲区 byte[] MyBytes = new byte[1024]; //MyStream 是个NetworkStream类型的对象,已经进行对TCPClient的GetStream操作 int MyBytesRead = MyStream.Read(MyBytes, 0,Mybytes.Length); ...... 转换成C++ .net后: ... System::Byte^ myBytes= new System::Byte[1024]; int ByteRead = ms->Read(myBytes, 0, 1023); ... ERROR: e:\c++项目\cpsec\simplechat\simplechat\Form1.h(60) : error C2440: 'initializing' : cannot convert from 'unsigned char *' to 'System::Byte ^' No user-defined-conversion operator available, or Cannot convert an unmanaged type to a managed type e:\c++项目\cpsec\simplechat\simplechat\Form1.h(61) : error C2664: 'int System::IO::Stream::Read(cli::array<Type,dimension> ^,int,int)' : cannot convert parameter 1 from 'System::Byte ^' to 'cli::array<Type,dimension> ^' with [ Type=unsigned char, dimension=1 ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 这里应该怎么定义变量呢? 最后请问下大家,有没有关于C++.NET网络编程的书可以借我几天,给链接也行呵呵,谢了。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
lixunhuan机器人#1 · 2008/8/17
是不是 c++不允许动态生成 数组?也就是byte[] MyBytes = new byte[1024]; 的问题?类库应该是一样的:)
lixunhuan机器人#2 · 2008/8/17
还有..饿滴神.......除非你非常熟悉 c++...否则一般不要尝试 c++CLR. 个人愚见............. 涉及到托管费托管..的问题..而且变量写的超级不好看........... 如果允许..直接C#代码得了..
lixunhuan机器人#3 · 2008/8/17
点对点传输文件..偶一直没想到很好的实际编程解决方法.. TCPlisten 和 TCP client.基本通讯简单.........
HectorInsanE机器人#4 · 2008/8/17
ls说的是…… 痛苦1:C++的确不能动态生成数组…… 痛苦2:的确C++的intelli sense极度恶心 什么类型都要把整个命名空间给搬出来 请教下,什么叫直接C#代码? 在C#平台做的话应该是简单点吧 但是还有另外一位成员的在使用C++做图像处理,需要用到指针…… 假如这块用C#做的话,中间的代码融合过程我完全不了解,所以…… ls有什么好的建议
UnitTest机器人#5 · 2008/8/17
【 在 HectorInsanE 的大作中提到: 】 : Hello everyone, : 我现在正用c++在.net 2005下做个软件,其中有一块是点对点传输文件的。 : 由于没有什么基础,图书馆也关了,基本上只能靠上网查资料。但是找到的好多都是用C#或者VB写的。走投无路只好试着把语法改成C++的,选择用TCPCLIENT和listener来发送和接收。 但是这两句: : ................... 请用gcnew , 而不是new, 至于其它一些特性,建议自己上网查查
derkaiser机器人#6 · 2008/8/17
MS可以把C++部分编译生成后导入C#工程调用C++的函数~具体建议baidu 【 在 HectorInsanE (EJ|BYR-Enjoy|GC|TIC029|鲨鱼帮极光鲨) 的大作中提到: 】 : ls说的是: : 痛苦1:C++的确不能动态生成数组…… : 痛苦2:的确C++的intelli sense极度恶心 什么类型都要把整个命名空间给搬出来 : ...................
UnitTest机器人#7 · 2008/8/17
【 在 UnitTest 的大作中提到: 】 : 请用gcnew , 而不是new, : 至于其它一些特性,建议自己上网查查 array<System::Byte>^ numbers = gcnew array<System::Byte>(5);
HectorInsanE机器人#8 · 2008/8/17
【 在 derkaiser 的大作中提到: 】 : MS可以把C++部分编译生成后导入C#工程调用C++的函数~具体建议baidu 飞版BM你好啊…… MS.net的出现原因之一就是为了解决这种问题的…… 不过没看过周围有谁是这样做的呵呵 好吧,现在试试C#的看看。 对了你有没有找师兄搞张择校的list来看看?
HectorInsanE机器人#9 · 2008/8/17
【 在 UnitTest 的大作中提到: 】 : array<System::Byte>^ numbers = gcnew array<System::Byte>(5); 强人啊!果然通过了…… CLR下面定义数组竟然要用array<type>来定义…… 谢谢!