当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·如何才能同时访问2张表    »显示摘要«
    摘要: 用class wizard insert一个 crecordset的导出类时,系统会让你选择数据源,数据表。 这时若同时选中两张表,意味着什么?这时这个记录类指向的是这两个表的合集吗?还是 什么? 因为我这样做后,虽然可以分别查询两张表的内容,但是想对其中一张表进行插入,则显 示“记录集只读”的错误。 在一个程序中想同时能对两张表自由的操作,是不是就必须定义两个crecordset的导出类......
    摘要: 有什么好的方法了,是嫌分数少了还是什么原因啊!!!! ......


能分析出DLL中封装了那些函数吗

能分析出DLL中封装了那些函数以及函数的参数等等其他信息

NO.1   作者: l_xiaofeng

在DOS下使用TDUMP   文件名   试下。

NO.2   作者: ruihuahan

microsoft   visual   studio中的depends工具,很好用的

NO.3   作者: myling

我这有一个,但是从来没用过,也不知好不好用:-)  
   
   
  __________________________________________________________________  
  取得某一dll所有输出函数名  
  在uses里加上ImageHlp  
   
  procedure   ListDLLFunctions(DLLName:   String;   List:   TStrings);  
  type  
      chararr   =   array   [0..$FFFFFF]   of   Char;  
      var  
      H:   THandle;  
      I,  
      fc:   integer;  
      st:   string;  
      arr:   Pointer;  
      ImageDebugInformation:   PImageDebugInformation;  
  begin  
      List.Clear;  
      DLLName   :=   ExpandFileName(DLLName);  
      if   FileExists(DLLName)   then  
      begin  
          H   :=   CreateFile(PChar(DLLName),   GENERIC_READ,   FILE_SHARE_READ   or  
              FILE_SHARE_WRITE,   nil,   OPEN_EXISTING,   FILE_ATTRIBUTE_NORMAL,   0);  
          if   H<>INVALID_HANDLE_VALUE   then  
              try  
                  ImageDebugInformation   :=   MapDebugInformation(H,   PChar(DLLName),   nil,   0);  
                  if   ImageDebugInformation<>nil   then  
                      try  
                          arr   :=   ImageDebugInformation^.ExportedNames;  
                          fc   :=   0;  
                          for   I   :=   0   to   ImageDebugInformation^.ExportedNamesSize   -   1   do  
                              if   chararr(arr^)[I]=#0   then  
                              begin  
                                  st   :=   PChar(@chararr(arr^)[fc]);  
                                  if   Length(st)>0   then  
                                      List.Add(st);  
                                  if   (I>0)   and   (chararr(arr^)[I-1]=#0)   then  
                                      Break;  
                                  fc   :=   I   +   1  
                              end  
                      finally  
                          UnmapDebugInformation(ImageDebugInformation)  
                      end  
              finally  
                  CloseHandle(H)  
              end  
      end  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      List:   TStrings;  
      I:   integer;  
      S:   String;  
   
  begin  
      List   :=   TStringList.Create;  
   
      ListDLLFunctions(c:\windows\system\Abcsda.dll,   List);  
      showmessage(inttostr(list.count));  
      S   :=   List   of   functions;  
      for   I   :=   0   to   List.Count   -   1   do  
          S   :=   S   +   #13#10   +   List[I];  
      ShowMessage(S);  
   
      List.Free  
  end;  
   
  //rock  
  //转载请保留此信息  
  //http://www.9headbird.com  
   
   
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
   
  同意楼上,只能得到函数名,得不到参数和返回值的


 ·高分,在线等待    »显示摘要«
    摘要: 请问如何实现客户端脚本和服务器段脚本的交互?具体一点说,就是客户端的脚本需要服务器端脚本执行查询的结果。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE