CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

[求助]VC中怎么调用DLL中的方法

楼主xiehuanxie(xiehuanxie)2006-06-04 12:54:42 在 VC/MFC / 基础类 提问

在VB中有一个这样的声明.  
  Private   Declare   Function   NtQuerySystemInformation   Lib   "ntdll.dll"   (   _  
          ByVal   dwInfoType   As   Long,   _  
          ByVal   lpStructure   As   Long,   _  
          ByVal   dwSize   As   Long,   _  
          dwReserved   As   Long)   As   Long  
   
  用VC来应该怎么写?  
  急啊. 问题点数:100、回复次数:4Top

1 楼syy64(太平洋)回复于 2006-06-04 13:10:06 得分 20

1、在VC中包含DLL的头文件;  
  2、在连接选项里设置LIB;  
  3、将DLL考到EXE目录下;  
  4、直接调用DLL的函数。  
   
  或用LoadLibrary动态调用,看MSDN   MFC的例子。Top

2 楼flyelf(空谷清音)回复于 2006-06-04 13:25:52 得分 40

typedef   NTSTATUS   (WINAPI   *PNTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);  
  PNTQUERYSYSTEMINFORMATION   pNtQuerySystemInformation   =   (PNTQUERYSYSTEMINFORMATION)   GetProcAddress(GetModuleHandle("ntdll.dll"),   "NtQuerySystemInformation");  
  pNtQuerySystemInformatio(...);Top

3 楼xiaoyuzi(小鱼子)回复于 2006-06-04 13:27:02 得分 40

typedef   LONG   (WINAPI   *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);  
          PROCNTQSI   NtQuerySystemInformation;  
   
          NtQuerySystemInformation   =   (PROCNTQSI)GetProcAddress(  
                                                                                      GetModuleHandle("ntdll"),  
                                                                                    "NtQuerySystemInformation"  
                                                                                    );  
          if   (!NtQuerySystemInformation)  
  {  
                  return;  
  }  
   
          //   get   number   of   processors   in   the   system  
          status   =   NtQuerySystemInformation(SystemBasicInformation,  
                                                              &SysBaseInfo,sizeof(SysBaseInfo),NULL);  
          if   (status   !=   NO_ERROR)  
  {  
                  return;  
  }  
    status   =   NtQuerySystemInformation(SystemTimeInformation,  
                                                                &SysTimeInfo,sizeof(SysTimeInfo),0);  
            if   (status!=NO_ERROR)  
    {  
                      return;  
    }  
            //   get   new   CPU''s   idle   time  
            status   =   NtQuerySystemInformation(SystemPerformanceInformation,  
                                                                &SysPerfInfo,sizeof(SysPerfInfo),NULL);  
            if   (status   !=   NO_ERROR)  
    {  
                      return;  
    }Top

4 楼xiehuanxie(xiehuanxie)回复于 2006-06-04 18:59:16 得分 0

谢谢各位.  
  VB中的ByVal很难理解,是传值?Top

相关问题

关键词

得分解答快速导航

  • 帖主:xiehuanxie
  • syy64
  • flyelf
  • xiaoyuzi

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo