泉州宠物网

怎么把ping写成一个dll

      发布时间: 2019-09-17

      http://dev.csdn.net/Develop/article/19/19966.shtm

      在我们实际用软件时,经常可看到许多动态连接库。动态连接库有其自身的优点
      如节省内存、支持多语种等功能,而且,当DLL中的函数改变后,只要不是参数的改变
      调用起的函数并不需要重新编译。这在编程时十分有用。至于其他妙处,各位在电脑
      杂志、书籍中都能看到,我这里再说就是废话了.
      这次小弟我所要讲的是如何在VC5.0中如何做自己的Win32 DLLs,各位要做自己的
      动态连接库,首先要知道DLL在VC5.0中都有哪几种分类。VC支持三种DLL,它们是:

      1.Non-MFC Dlls
      2.Regular Dlls
      3.Extension Dlls Note:翻译措辞不当,故遇到术语是引用原词

      Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一
      般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。LL,
      Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是
      在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上
      的。但静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。
      Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类
      型的动态连接库,可以用来输出一个从MFC所继承下来的类。Extension DLL使用MFC的
      动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。
      各位看到这里如果眼有点花或头有点晕,请别泄气,再看两遍,然后继续往下看,
      定有收获。

      标 题: 关于VC中的DLL的编程[1]

      这一节介绍Non-MFC DLLs的编写方法。下面是一个通用的
      写法:

      BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,
      LPVOID lpReserved)
      {
      switch( ul_reason_for_call ) {
      case DLL_PROCESS_ATTACH:
      .......
      case DLL_THREAD_ATTACH:
      .......
      case DLL_THREAD_DETACH:
      .......
      case DLL_PROCESS_DETACH:
      .......
      }
      return TRUE;
      }
      每一个DLL必须有一个入口点,这就象我们用C编写的应用程序一样,
      必须有一个WINMAIN函数一样。
      在这个示例中,DllMain是一个缺省的入口函数,你不需要编写自己
      的DLL入口函数,并用linker的命令行的参数开关/ENTRY声明。用这个缺
      省的入口函数就能使动态连接库被调用时得到正确的初始化,当然了,你
      不要在初始化的时候填写使系统崩溃的代码了。
      参数中,hMoudle是动态库被调用时所传递来的一个指向自己的句柄
      (实际上,它是指向_DGROUP段的一个选择符)
      ul_reason_for_call是一个说明动态库被调原因的标志。当进程或线程
      装入或卸载动态连接库的时候,操作系统调用入口函数,并说明动态连接库
      被调用的原因。它所有的可能值为:
      DLL_PROCESS_ATTACH: 进程被调用
      DLL_THREAD_ATTACH: 线程被调用
      DLL_PROCESS_DETACH: 进程被停止
      DLL_THREAD_DETACH: 线程被停止
      lpReserved是一个被系统所保留的参数。
      入口函数已经写了,盛下的也不难,你可以在文件中加入你所想要输
      出的函数或变量或c++类或、或、或、?好象差部多了。Look here!现在就
      要加入一个新的输出函数了:
      void _declspec(dllexport) JustSoSo()
      {
      MessageBox(NULL,"It's so easy!","Hahaha......",MB_OK);
      }
      要输出一个类也可以,如下:
      class _declspec(dllexport) Easy
      {
      //add your class definition...
      };
      各位一定注意到在输出函数或类是我用到_declspec(dllexport),
      这是VC提供的一个关键字,用它可在动态连接库中输出一个数据、
      一个函数或一个类。用这个关键字可省你不少事,你不用在.DEF文件
      中说明我要输出这个类、那个函数的。
      Ok!各位照着上面的例子试着敲敲看,Just so easy!
      先说到这了

      发信人: dragon (龙), 信区: VC
      标 题: 关于VC中的DLL的编程[2]

      前面讲到Non-MFC DLL的编法,现在讲讲调用DLL的方法。对DLL的
      调用分为两种,一种是显式的调用,一种是隐式的调用。
      所谓显式的调用,是指在应用程序中用LoadLibrary或MFC提供的
      AfxLoadLibrary显式的将自己所做的动态连接库调近来,动态连接库
      的文件名即是上两函数的参数,再用GetProcAddress()获取想要引入
      的函数。自此,你就可以象使用如同本应用程序自定义的函数一样来
      调用此引入函数了。在应用程序退出之前,应该用FreeLibrary或
      MFC提供的AfxLoadLibrary释放动态连接库。

      隐式的调用则需要把产生动态连接库时产生的.LIB文件加入到应
      用程序的工程中,想使用DLL中的函数时,只须说明以下,如下:说明
      上篇的输出函数void JustSoSo();
      隐式调用不需要调用LoadLibrary()和FreeLibrary().

      由此看来,隐式说明调用的方法比较简单,但DLL改变后,应用程序
      须从新编译。并且,所有所调用的DLL在应用程序加载的同时被加载到内
      存中,但应用程序调用的DLL比较多时,装入的过程十分慢。隐式的调用
      则在应用程序不知道所要装入的DLL或隐式调用不成功,此时,允许用户
      指定所要加载的动态连接库,比较灵活

      发信人: dragon (龙), 信区: VC
      标 题: 关于VC中的DLL的编程[3]

      Regular DLL能够被所有支持DLL技术的语言所编写的应用程序
      所调用。在这种动态连接库中,它必须有一个从CWinApp继承下来的
      类,DllMain函数被MFC所提供,不用自己显式的写出来。下面是一个
      例子:
      // MyRegularDll.h:main header file for the MYREGULARDLL DLL
      #include "resource.h" // main symbols

      class CMyRegularDllApp : public CWinApp
      {
      public:
      CMyRegularDllApp();
      // Overrides
      // ClassWizard generated virtual function overrides
      //{{AFX_VIRTUAL(CMyRegularDllApp)
      //}}AFX_VIRTUAL

      //{{AFX_MSG(CMyRegularDllApp)
      // NOTE - the ClassWizard will add and
      // remove member functions here.
      // DO NOT EDIT what you see in these blocks
      // of generated code !
      //}}AFX_MSG
      DECLARE_MESSAGE_MAP()
      };

      //MyRegularDll.cpp:Defines the initialization routines for the DLL.
      //

      #include "stdafx.h"
      #include "MyRegularDll.h"
      // Note!
      //
      // If this DLL is dynamically linked against the MFC
      // DLLs, any functions exported from this DLL which
      // call into MFC must have the AFX_MANAGE_STATE macro
      // added at the very beginning of the function.
      //
      // For example:
      //
      // extern "C" BOOL PASCAL EXPORT ExportedFunction()
      // {
      // AFX_MANAGE_STATE(AfxGetStaticModuleState());
      // // normal function body here
      // }
      //
      // It is very important that this macro appear in each
      // function, prior to any calls into MFC. This means that
      // it must appear as the first statement within the
      // function, even before any object variable declarations
      // as their constructors may generate calls into the MFC
      // DLL.

      BEGIN_MESSAGE_MAP(CMyRegularDllApp, CWinApp)
      //{{AFX_MSG_MAP(CMyRegularDllApp)
      // NOTE - the ClassWizard will add
      // and remove mapping macros here.
      // DO NOT EDIT what you see in these blocks
      END_MESSAGE_MAP()
      ////////////////////////////////////////////////////////////
      // CMyRegularDllApp construction
      CMyRegularDllApp::CMyRegularDllApp()
      {
      // TODO: add construction code here,
      // Place all significant initialization in InitInstance
      }
      以上是AppWizard产生的含有主要代码的两个文件,各位可从中
      看出和Non-MFC Dlls的区别。但要注意上面的AppWizard的提醒啊。

      发信人: dragon (龙), 信区: VC
      标 题: 关于VC中的DLL的编程[4]
      发信站: 饮水思源站 (Thu Mar 25 00:46:22 1999) , 站内信件

      这次要讲的是最后一种动态连接库:Extension Dlls.再次说明,
      Extension Dll只被用MFC类库所编写的应用程序所调用.在这种动态
      连接库中,你可以从MFC继承你所想要的、更适于你自己用的类,并
      把它提供给你的应用程序。你也可随意的给你的应用程序提供MFC或
      MFC继承类的对象指针。
      Extension DLLs 和Regular DLLs不一样,它没有一个从CWinApp
      继承而来的类的对象,所以,你必须为自己DllMain函数添加初始化
      代码和结束代码.如下:

      #include "stdafx.h"
      #include

      static AFX_EXTENSION_MODULE PROJNAMEDLL = { NULL, NULL };

      extern "C" int APIENTRY
      DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
      {
      if (dwReason == DLL_PROCESS_ATTACH)
      {
      TRACE0("PROJNAME.DLL Initializing!\n");

      // Extension DLL one-time initialization
      AfxInitExtensionModule(PROJNAMEDLL,
      hInstance);

      // Insert this DLL into the resource chain
      new CDynLinkLibrary(Dll3DLL);
      }
      else if (dwReason == DLL_PROCESS_DETACH)
      {
      TRACE0("PROJNAME.DLL Terminating!\n");
      }
      return 1; // ok
      }
      在上面代码中AfxInitExtensionMoudle函数捕捉此动态库模块
      用.
      在初始化的时NEW一个CDynLinkLibrary对象的目的在于:它
      能是Extension DLL想应用程序输出CRuntimeClass对象或资源.
      如果此动态连接库被显式的调用,还必须在DLL_PROCESS_DETACH
      选择项的执行代码上调用AfxTermEXtensonModule,这保证了当调
      用进程与动态连接库分离是正确清理内存中的动态库模块。如果是
      隐式的被调用,则此步不是必须的了。

      回复:

      不知道什么时候 进程中多出两个rar.exe和cmd.exe,怎么删都删不掉,只有卸载了rar之后才能停止启动,重装了1次后,机器中又出现了,结果郁闷不行,就再也不想去处理了,也有可能是因为忙,呵呵(借口啊),今天终于忍无可忍了,机器慢得像老牛,必须整治整治了。 下面部分就是病毒信息和处理过程,如果你也中了,就跟着一起做吧,美女我可以手把手教着做,一次学不会下次免费再学,帅哥可以自力更生了~~~~~呵呵。入正题: 网上说:中了此毒后不要抱有侥幸心理,不要认为电脑还可以接着用,由于它是下载器,标志着时间越久,它下载下来的病毒和木马就会越多,所以得病后需及时就医。。。黑龙江XXX医院引进美国独特技术,成功治愈男女XX疾病。。。
      lpk.dll
        The process Language Pack belongs to the software Microsoft® Windows® Operating System or Microsoft?
        描述:lpk.dll位于 c:\winddows\system32.
        已知档案大小就是22016字节(各92%发生)windows XP,18944字节. 属系统文件
        档案不是windows核心档案.
        因此技术安全等级是40%危险.
        注意:有些恶意程序伪装自己lpk.dll,尤其是如果他们是位于c:\windows文件夹.
      usp10.dll
        usp10.dll (1.409.2600.1106)
        包含在软件
        名字: Windows XP Home Edition, Deutsch
        信息链接: http://www.microsoft.com/windowsxp/
        文件细节
        文件道路: C:\WINDOWS\system32 \ usp10.dll
        文件日期: 2002-08-29 14:00:00
        版本: 1.409.2600.1106
        文件大小: 339.456 字节
        检查和和文件hashes
        CRC32: 9DA76CA6
        MD5: 06E2 217D 2AF7 50D6 69C8 AACE DD28 090B
        SHA1: 7B9A 2876 45A6 A25B 8867 0229 49FE D6E6 816F 6A32
        版本资源信息
        公司名称: Microsoft Corporation
        文件描述: Uniscribe Unicode script processor
        文件操作系统: Windows NT, Windows 2000, Windows XP, Windows 2003
        文件类型: Dynamic Link Library (DLL)
        文件版本: 1.409.2600.1106
        内部名: Uniscribe
        法律版权: Microsoft Corporation. All rights reserved.
        原始的文件名: Uniscribe
        产品名称: Microsoft(R) Uniscribe Unicode script processor
        产品版本: 1.409.2600.1106
        用途:usp10.dll是字符显示脚本应用程序接口相关文件。也可能为病毒
        安全等级 (0-5): 0 (N/A无危险 5最危险)
        间谍软件: 可能
        广告软件: 否
        病毒: 可能
        木马: 可能
        系统进程: 是
        应用程序: 否
        后台程序: 否
        使用访问: 否
        访问互联网: 否
        解决方法:
        尝试运行"sfc /scannow",检查一下系统文件
        如果在windows\system32目录之外发现usp10.dll,则很可能是病毒文件:
        usp10.dll很多应用程序运行时会调用,调用的优先级为:
        1.应用程序的安装目录;2:当前的工作目录;3:系统目录;4:路径变量set path=所指的路径。
        其目的就是当你运行某个EXE程序时,会按以上优先级调用usp10.dll,使得病毒文件先于系统文件执行,并且很可能导致有关应用程序运行错误。
        这时,建议运行反病毒软件查杀病毒,或者在技术论坛发贴求助。
        病毒可能
        2009年2月4日起,大量网友发现自己的电脑突然间慢如“老牛”,硬盘中同时出现了很多莫名其妙的“usp10.dll”文件,即便重装系统也无济于事。原来,这是一头名为“犇牛”的恶性木马突然爆发的结果。
        360安全中心向记者紧急发布公告,称“犇牛”木马下载器已袭击了数十万台电脑,并能导致大部分安全软件失效,用户采用重装系统等常规手段也无法解决。
        根据大批受害用户的反映,感染“犇牛”下载器的电脑系统速度会明显变慢,部分用户的电脑感染“犇牛”后还会出现弹出大量广告网页、杀毒软件遭强制卸载、“QQ医生”显示为“叉号”无法正常使用等各种症状,并会自动下载大量木马病毒。受害用户除非将所有硬盘分区全盘格式化,否则即便重装系统后“犇牛”仍能踏蹄重来。
        据360安全专家石晓虹博士介绍,“犇牛”采用了特别技术,在系统重装后仍能“复活”,完全不同于其它恶性木马常用的“复活”方式,使普通用户很难用以往的系统重装方式来“自救”;此外,"犇牛"还使用了一个名为“安软杀手”的帮凶对主流杀软进行卸载和破坏,屏蔽安全厂商的网站,致使受害用户无法通过登录安全网站或下载安全软件获得帮助。
        病毒自救
        中毒后计算机里的数据并不完全没救。中毒后不要抱有侥幸心理,不要认为电脑还可以接着用,由于它是下载器,标志着时间越久,它下载下来的病毒和木马就会越多,所以得病后需及时就医。
        重装系统是最好的办法,重装完成后,不要碰触其他分区。先打开我的电脑,把隐藏文件和系统文件显示出来,从他人电脑上下载杀毒软件和最新病毒库离线升级包,拷贝到本机安装在C盘里,把杀毒软件升级到最新病毒库,对其他分区进行全盘扫描。一般病毒会被查杀。查杀完成前不要使用电脑做其他事。清理完病毒后即可正常使用。
      处理办法:
      USP10.DLL犇牛病毒查杀的方法|lpk.dll木马专杀--手动清除最有效
      方法一、首先打开"我的电脑"选择菜单栏里的"工具"下的"文件夹选项"选择"隐藏受保护的操作系统文件"和"显示所有文件和文件夹",这样做是因为这个USP10.dll病毒把自身修改为系统文件和隐藏文件,这样做后就可以看到USP10.dll病毒文件了.USP10.dll病毒会感染系统里所有exe文件,并切把自身复制到被感染的exe文件的当前目录,
      所以因该到安全模式去删除病毒,在安全模式下,病毒还是会驻留在某些系统进程里,这里不用害怕,我们来一步步消灭这可恶的病毒,
      "开始菜单"选择"搜索"再选择"文件或文件夹"在"全部或部分文件名"里写上"usp10.dll",然后直接点"搜索",系统会搜索出所有盘符下的USP10.dll病毒出来
      ,注意路径,C:\WINDOWS\system32\USP10.dll和C:\WINDOWS\system32\dllcache\USP10.dll的不是病毒,其他的都是,等把所有usp10.dll搜索出来后,
      就删除,C:\WINDOWS\USP10.dll可能一时删不了,别怕,这个也是病毒,只是还有进程在使用他,我们可以先给他改个名字,重命名一下,只要不是usp10.dll就可以,然后重新启动,再回到C:\WINDOWS\把你刚改的名字的病毒删掉就可以了.
      方法二、进到安全模式下,记住不要点击任何目录下的可运行程序,然后按照下面的步骤:
      1 “工具”--“文件夹选项”--“查看”--把“隐藏受保护的操作系统文件的对勾去掉”关闭以及选择“显示所有文件和文件夹”,这时你会看见很多目录下都有usp10.dll大小为8K。
      2 找到系统windows目录下的usp100.dll删除(最好不要用鼠标双击根目录,因为任何目录都通过explorer.exe,用地址栏就行了)。记住不要点击任何目录下的可运行程序,因为usp10.dll具有系统优先权你点击任何可运行程序都会首先加挂usp10.dll。
      3 将下面粘贴到记事本保存为bat批处理文件(别告诉我拟不会)然后双击运行,为什么要先做第二步,因为bat文件是通过cmd.exe来运行的,所以必须首先清除windows目录下的:
      @echo off
      set "str=usp10.dll"
      set "drv=c d e f"
      for %%a in (%drv%) do (
      if exist %%a: (
      for /f "delims=" %%b in ('dir /s/b/a-d "%%a:\%str%" 2^>nul') do (
      if not "%%b"=="" (
      attrib "%%b" -a -h -s
      del /f/s/q "%%b"
      )
      )
      )
      )
      4 在“运行”中输入:regedit;查找包含usp10.dll的值和项然后删除。(system32目录下的usp10.dll除外)(不能忙着享受,这里提示你删除前备份下注册表)
      重启搞定享受洁净的电脑空间吧!!!!!

      回复:

      你好楼主:你的机器能上网说明网络和机器没问题。

      你这个问题应该是你的80端口被你禁制了,开启就可以OK了

      回复:

      大概包括以下几种原因: 一、感染了病毒所致 这种情况往往表现在打开IE时,在IE界面的左下框里提示:正在打开网页,但老半天没响应。在任务管理器里查看进程,(进入方法,把鼠标放在任务栏上,按右键—任务管理器—进程)看看CPU的占用率如何,如...

      回复:

      http://dev.csdn.net/Develop/article/19/19966.shtm 在我们实际用软件时,经常可看到许多动态连接库。动态连接库有其自身的优点 如节省内存、支持多语种等功能,而且,当DLL中的函数改变后,只要不是参数的改变 调用起的函数并不需要重新编译。...

      回复:

      您好,您的问题可以通过电脑管家的电脑诊所功能尝试修复,里面提供了很多实用的修复功能,常见问题一键修复,很方面的。 附:手动修复步骤(来源:腾讯电脑管家电脑诊所,自动修复请点击上方的【立即修复】) 方案一:手动设置DNS (说明:如果...

      回复:

      1.如果是局域网的电脑就是被网络管理员封IP了。 2.要不就是路由器限制了 3.要么就是DNS错误。 4.有可能你用过代理服务器上网.

      回复:

      解决方案: 声明外部函数: Function ulong IcmpCreateFile () Library "icmp.dll" Function long IcmpSendEcho (ulong IcmpHandle, ulong DestinationAddress, string RequestData,long RequestSize, long RequestOptions, Ref icmp_echo_reply...

      回复:

      你好楼主:你的机器能上网说明网络和机器没问题。 你这个问题应该是你的80端口被你禁制了,开启就可以OK了

      回复:

      您好亲爱的用户 您的这个地址本身是错误的哦 您可以试试在地址栏输入http://qzone.qq.com/ 如果还是不行 建议您在确保电脑运行环境安全,以及网络连接没有问题的前提下(您可以使用电脑管家测试下实时网速,看网速是否被限制),可以选择以下腾讯...

      回复:

      如果你没有用过这个程序 那很可能就是木马病毒造成的 建议查杀木马

      回复:

      网关或DNS设置不正确 1.打开【控制面板】→【网络连接】→打开【本地连接】→【属性】: 2.双击【Internet 协议(TCP/IP)】→选择【使用下面的DNS服务器地址(B)】→输入首选DNS服务器为"114.114.114.114",备用DNS服务器为"114.114.115.115"→点击【确...

      回复:

      不知道什么时候 进程中多出两个rar.exe和cmd.exe,怎么删都删不掉,只有卸载了rar之后才能停止启动,重装了1次后,机器中又出现了,结果郁闷不行,就再也不想去处理了,也有可能是因为忙,呵呵(借口啊),今天终于忍无可忍了,机器慢得像老牛,...

        上一篇:我的惠威音响m100 mk‖怎么能连接手机,连接话筒唱歌啊, 下一篇:工作中,老公不帮我,大家说要不要和他离婚,真诚回答谢谢

        返回主页:泉州宠物网

        本文网址:http://0595pet.cn/view-208350-1.html
          信息删除