这不能代表什么啊!
不过我希望大家都是VC的高手!hehe 

解决方案 »

  1.   

    搞Delphi的人毕竟还是少吗!我马上就要辞别VC和Microsoft说再见,投入Delphi的怀抱!
      

  2.   

    呵呵。。可能是dephi高手不屑于回答,在delphi中这是个小问题
      

  3.   

    补充:从控件中可以得到你想要的连接信息(IP和PORT)
      

  4.   

    想要delphi的源码吗?
    我写了一个,功能和 netstat 一样:)
    [email protected]
      

  5.   

    我倒不这样觉得,如果你去问一下关于数据库在分布式多层结构的应用方面的问题,我想情况会完全相反。估计那时候你就会觉得VC算个屁啊。
    如果仅仅拿一个TCP/UDP就能够说明一切的话,那言下之意也就是回答上来的都是高手了,再假如我问一个数据库的问题你能不能回答上来呢?可以保证吗高手?如果一个高手不能解决实际问题,那做高手做什么???以己之长度人之短,呵呵
      

  6.   

    我是菜鸟,不过我觉得Again的话最有道理。
      

  7.   

    郑重声明:我并没有贬低delphi及其高手的意思呀,我也用delphi嘛。
             delphi和vc是术业有专攻的。但我问的这个问题我想在delphi中应该可以解决。
             只是看到没有人讨论,和vc中的讨论结果反差太大了,我才想到给大家一点激励。
             呵呵,让Again兄误会了。 
      

  8.   

    to Tine: 用控件能得到所有的连接信息?所有的?能保证不漏掉?
      

  9.   

        VC不能用数据库?OLE DB就是针对VC开发的。多层分布中关键的COM对象连Vtabe这个概念都是从C++中来的。不是用VC的人都是不做数据库的,实际问题也不该是指应用层次的程序吧?那也太不上层次了。VC不是数据库功能不够呀,我想对数据库的操作上还没有强过VC连接的OLE DB,特别是在效率上。只是VC连接数据库过于深奥和繁琐了,才没有人使用而已。我本人就是这样,不说DELPHI,我宁可用VB也不用VC连数据库的,虽说我有这个能力。
        不过说个实话,高手都不会少吧。只是用VC的水平纯一点,而用DELPHI的就参差不齐了,水平高的固然不少,但也有不少人了解几个控件就自认是高手了。用候捷的一句话:只用一样东西而不了解它的原理,实在是不高明。
      

  10.   

    我不同意shprog 的说法。 同意AgainDelphi 编的黑客程序你看过没有。(你的问题小儿科)VC程序员看回答的多是因为他们好不容易找到了一个自己能回答的问题想得点分。Delphi的数据库就是比VC强。在开发效率上比得了吗?
      

  11.   

    to gaochunguang: 是呀,小弟用delphi才一个月。但是我也知道delphi与vc的长短,我的主要目的不是讨论delphi与vc的优劣,正如我“郑重声明”中所说,我想让大家指导一下,解决我的问题,只是看到没有人讨论,和vc中的讨论结果反差太大了,我才想到给大家一点激励,写下这篇贴子,我从不认为delphi比vc差(当然vc也很优秀)。黑客程序有不少是用delphi写的,这我见过,也知道。但小弟才疏学浅,不明白实现方法,还请大哥指点。注意:我强调的是所有连接(包括tcp & udp),不能漏掉接受到的信息包。而且只能监测它的传输,不能影响它的接收。
      

  12.   

    大家还在讨论vc,delphi的优劣呀。好像是存在两大阵营,用编程语言划分的。
    其实只有一个阵营:程序员。
    应该分不同的场合用不同的语言吧,一个程序员精通多种编程语言,就像一个人会说多国语言
    一样正常。vc,delphi只是我们手边的工具,重要的是怎样使用我们的智慧。
    对于我们来说,数据库原理、Win32程序的体系结构,网络原理似乎更重要。
    至于论坛的人气,大家共同培养吧。
      

  13.   

    -------------------------------------------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中至今未有答案
      

  14.   

    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。
      

  15.   

    jettang, kxy在................?????????????????????
      

  16.   

    shprog ??什么意思?:) 可以明示吗:)
      

  17.   

    谢谢,我现在的解决方法是
    p1:=Pointer(integer(MapFilePointer)+sizeof(recordofmapfile)); 
      

  18.   

    我他妈的会用汇编,C,C++又算个屁。语言实现的等级不一样。就象你问如何实现多重继承,DELPHI程序员不会理你,因为DELPHI没有。但如果你问一个C++中多重继承如何在DELPHI中实现,我至少知道两种。是不是DELPHI程序员强过C++程序员?其实我觉得无论用什么语言,都象一个工人,DELPHI程序员象一个领导者,而C++程序员更象一个技术人员。工作重点不同而已。不过以我来看,现在的(中国)程序员开发的程序大部分是应用系统,用VB,PB甚至VFP都可以。又何必用易错难懂的C++呢?再说,DELPHI的代码优雅而强大,我不得不流露我对她的欢喜之情。
      

  19.   

    到这里来的Delphi程序员好象太少,大概都跑到大富翁去了。