看看csdn中Delphi & VC 高手的比较吧

shprog 2000-09-12 09:35:00
声明:我没有厚此薄彼的意思, 只是陈述一种现象。难道真如我所说?呵呵。
也许有些偏激,但也说明了一些问题。

看看我的同一篇贴子,相同的时间贴出,相同的分数,不同的是一个贴在了VC中,一个贴在了Delphi中,三天过去了,看看结果:

贴子名:如何捕获当前所有和本机相连的tcp/udp连接的信息(包括对方ip和port)?
Vc中: http://expert.csdn.net/TopicView.asp?id=29065
回复次数:17 人气指数:184
Delphi中: http://expert.csdn.net/TopicView.asp?id=29064
回复次数:1 (还是我自己贴的) 人气指数:17
...全文
1711 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fred 2000-10-03
  • 打赏
  • 举报
回复
到这里来的Delphi程序员好象太少,大概都跑到大富翁去了。
Lionheart 2000-10-01
  • 打赏
  • 举报
回复
我他妈的会用汇编,C,C++又算个屁。语言实现的等级不一样。就象你问如何实现多重继承,DELPHI程序员不会理你,因为DELPHI没有。但如果你问一个C++中多重继承如何在DELPHI中实现,我至少知道两种。是不是DELPHI程序员强过C++程序员?其实我觉得无论用什么语言,都象一个工人,DELPHI程序员象一个领导者,而C++程序员更象一个技术人员。工作重点不同而已。不过以我来看,现在的(中国)程序员开发的程序大部分是应用系统,用VB,PB甚至VFP都可以。又何必用易错难懂的C++呢?再说,DELPHI的代码优雅而强大,我不得不流露我对她的欢喜之情。
jettang 2000-09-27
  • 打赏
  • 举报
回复
谢谢,我现在的解决方法是
p1:=Pointer(integer(MapFilePointer)+sizeof(recordofmapfile));
shprog 2000-09-26
  • 打赏
  • 举报
回复
有没有人能解决那个问题呀
kxy 2000-09-18
  • 打赏
  • 举报
回复
shprog ??什么意思?:) 可以明示吗:)
shprog 2000-09-18
  • 打赏
  • 举报
回复
jettang, kxy在................?????????????????????
kxy 2000-09-15
  • 打赏
  • 举报
回复
delphi指针中只有PChar类型可以作加法。
var
Address : Pointer;
hMapFile : THandle;
MapFilePointer : Pointer;
begin
hMapFile := CreateFileMapping(INVALID_HANDLE_VALUE,
nil,
PAGE_READWRITE,
0,
4096,
'MyMemFileMap');
if hMapFile <> 0 then
MapFilePointer := MapViewOfFile(hMapFile,File_Map_All_Access,0,0,0)
else begin
ShowMessage('err');
exit;
end;

if MapFilePointer = nil then exit;

//第1个使用:将0-1023处置为大写'A'
FillChar(MapFilePointer^, 1024, Ord('A'));

//第2个使用:将1024-2047处置为大写'B'
Address := PChar(MapFilePointer)+1024;
FillChar(Address^, 1024,Ord('B'));

//第3个使用:将2048-3071处置为大写'C'
Address := PChar(MapFilePointer)+2048;
FillChar(Address^, 1024,Ord('C'));

//第4个使用:将3972-4095处置为大写'D'
Address := PChar(MapFilePointer)+3072;
FillChar(Address^, 1024,Ord('C'));

//第5个使用:将100处置为大写'X'
Address := PChar(MapFilePointer)+100;
PChar(Address)^ := 'X';

//第6个使用:将101处置为大写'Y'
Address := PChar(MapFilePointer)+101;
PChar(Address)^ := 'Y';

UnmapViewOfFile(MapFilePointer);
CloseHandle(hMapFile);


//对于结构,
Address := PChar(MapFilePointer)+Sizeof(yourstruct);
end;
注:这是指针的基本用法。delphi比C稍微麻烦一点,就在于delphi中只能先转换为PChar。
jiafcat 2000-09-14
  • 打赏
  • 举报
回复
大家还在讨论vc,delphi的优劣呀。好像是存在两大阵营,用编程语言划分的。
其实只有一个阵营:程序员。
应该分不同的场合用不同的语言吧,一个程序员精通多种编程语言,就像一个人会说多国语言
一样正常。vc,delphi只是我们手边的工具,重要的是怎样使用我们的智慧。
对于我们来说,数据库原理、Win32程序的体系结构,网络原理似乎更重要。
至于论坛的人气,大家共同培养吧。
jettang 2000-09-14
  • 打赏
  • 举报
回复
-------------------------------------------delphi---------------------------
主  题:内存映射文件,求救?
作  者:jettang
所属论坛:Delphi
问题点数:100
回复次数:5
人气指数:60
发表时间:2000-9-12 22:32:00

我用MapViewOfFile得到了内存映射文件的地址,但如何移动指针读取每个记录呢?谢谢?

回复贴子:
cjf回复于2000-9-12 23:52:00
如果你知道记录的结构,就可以直接移动了。
jettang回复于2000-9-13 9:54:00
用什么函数移
Firing_Sky回复于2000-9-13 11:07:00
得到一个指针Link
@Link:=@Link+RecordLength
jettang回复于2000-9-14 12:51:00
我试了出错 "left side cannot be assigned to"

Firing_Sky回复于2000-9-14 13:56:00
搞错了,好像只要用
procedure TForm1.Button1Click(Sender: TObject);
var
P:PChar;
begin
GetMem(P,100);
P:=P+4;
end;

-----------------------------------------Vc++-----------------------
主  题:我用MapViewOfFile得到了内存映射文件的地址,但如何移动指针读取每个记录呢?谢谢?
作  者:jettang
所属论坛:Visual C++
问题点数:50
回复次数:3
人气指数:35
发表时间:2000-9-12 22:48:00


回复贴子:
Holly回复于2000-9-13 3:22:00

示例:
...
HANDLE hMapObject = NULL;
LPVOID lpvMem = NULL;
LPBYTE lpMyTmp = NULL;
hMapObject = CreateFileMapping(
INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
4096,
"MyMemFileMap");
if (hMapObject == NULL)
return;
lpvMem = MapViewOfFile(
hMapObject,
FILE_MAP_WRITE,
0,
0,
0);
if (lpvMem == NULL)
return;
//第1个使用:将0-1023处置为大写'A'
memset(lpvMem, 'A', 1024);

//第2个使用:将1024-2047处置为大写'B'
memset((LPBYTE)lpvMem + 1024, 'B', 1024);

//第3个使用:将2048-3071处置为大写'C'
memset((LPBYTE)lpvMem + 2048, 'C', 1024);

//第4个使用:将3972-4095处置为大写'D'
memset((LPBYTE)lpvMem + 3072, 'D', 1024);

//第5个使用:将100处置为大写'X'
*((LPBYTE)lpvMem + 99) = 'X';

//第6个使用:将101处置为大写'Y'
lpMyTmp = (LPBYTE)lpvMem + 100;
*lpMyTmp = 'Y';
UnmapViewOfFile(lpvMem);
CloseHandle(hMapObject);


Holly回复于2000-9-13 4:08:00
typedef struct tagMEMTEST
{
DWORD dwVar1;
WORD wVar2;
WORD wVar3;
BYTE abyVar[4];
}MEMTEST, *LPMEMTEST;
...

//第7个使用:使用结构;
LPMEMTEST lpMemTest = (LPMEMTEST)((LPBYTE)lpvMem + 10);
lpMemTest->dwVar1 = 0x01001000;
lpMemTest->wVar2 = 0x0200;
lpMemTest->wVar3 = 0x0300;
lpMemTest->abyVar[0] = 1;
lpMemTest->abyVar[1] = 2;
lpMemTest->abyVar[2] = 3;
lpMemTest->abyVar[3] = 4;


Dlf回复于2000-9-13 9:17:00
如Holly所说,用结构,进行指针的强制转换,用结构读取记录。

??????????????????????????????????????????????????????????????????????????
以上是同一个问题的遭遇,而我在delphi中至今未有答案
shprog 2000-09-14
  • 打赏
  • 举报
回复
to gaochunguang: 是呀,小弟用delphi才一个月。但是我也知道delphi与vc的长短,我的主要目的不是讨论delphi与vc的优劣,正如我“郑重声明”中所说,我想让大家指导一下,解决我的问题,只是看到没有人讨论,和vc中的讨论结果反差太大了,我才想到给大家一点激励,写下这篇贴子,我从不认为delphi比vc差(当然vc也很优秀)。黑客程序有不少是用delphi写的,这我见过,也知道。但小弟才疏学浅,不明白实现方法,还请大哥指点。注意:我强调的是所有连接(包括tcp & udp),不能漏掉接受到的信息包。而且只能监测它的传输,不能影响它的接收。
Again 2000-09-13
  • 打赏
  • 举报
回复
我倒不这样觉得,如果你去问一下关于数据库在分布式多层结构的应用方面的问题,我想情况会完全相反。估计那时候你就会觉得VC算个屁啊。
如果仅仅拿一个TCP/UDP就能够说明一切的话,那言下之意也就是回答上来的都是高手了,再假如我问一个数据库的问题你能不能回答上来呢?可以保证吗高手?

如果一个高手不能解决实际问题,那做高手做什么???

以己之长度人之短,呵呵
kxy 2000-09-13
  • 打赏
  • 举报
回复
想要delphi的源码吗?
我写了一个,功能和 netstat 一样:)
kxy@csdn.net
gaochunguang 2000-09-13
  • 打赏
  • 举报
回复
我不同意shprog 的说法。 同意Again

Delphi 编的黑客程序你看过没有。(你的问题小儿科)

VC程序员看回答的多是因为他们好不容易找到了一个自己能回答的问题想得点分。

Delphi的数据库就是比VC强。在开发效率上比得了吗?
Tine 2000-09-13
  • 打赏
  • 举报
回复
补充:从控件中可以得到你想要的连接信息(IP和PORT)
Tine 2000-09-13
  • 打赏
  • 举报
回复
呵呵。。可能是dephi高手不屑于回答,在delphi中这是个小问题
jhb 2000-09-13
  • 打赏
  • 举报
回复
VC不能用数据库?OLE DB就是针对VC开发的。多层分布中关键的COM对象连Vtabe这个概念都是从C++中来的。不是用VC的人都是不做数据库的,实际问题也不该是指应用层次的程序吧?那也太不上层次了。VC不是数据库功能不够呀,我想对数据库的操作上还没有强过VC连接的OLE DB,特别是在效率上。只是VC连接数据库过于深奥和繁琐了,才没有人使用而已。我本人就是这样,不说DELPHI,我宁可用VB也不用VC连数据库的,虽说我有这个能力。
不过说个实话,高手都不会少吧。只是用VC的水平纯一点,而用DELPHI的就参差不齐了,水平高的固然不少,但也有不少人了解几个控件就自认是高手了。用候捷的一句话:只用一样东西而不了解它的原理,实在是不高明。
zhyy 2000-09-13
  • 打赏
  • 举报
回复
也许戴妃高手都跑去大富翁了呢?!!!!
shprog 2000-09-13
  • 打赏
  • 举报
回复
to Tine: 用控件能得到所有的连接信息?所有的?能保证不漏掉?
shprog 2000-09-13
  • 打赏
  • 举报
回复
郑重声明:我并没有贬低delphi及其高手的意思呀,我也用delphi嘛。
delphi和vc是术业有专攻的。但我问的这个问题我想在delphi中应该可以解决。
只是看到没有人讨论,和vc中的讨论结果反差太大了,我才想到给大家一点激励。
呵呵,让Again兄误会了。
whitehare 2000-09-13
  • 打赏
  • 举报
回复
我是菜鸟,不过我觉得Again的话最有道理。
加载更多回复(5)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧