当前位置:编程学习 > C/C++ >>

c++怎么调用api函数?

例如我想编写一个C++程序通过调用API函数来获取计算机硬件的信息代码要怎么写啊??
答案:
#include <iostream>
#include <windows.h>

using namespace std;

void GetProcessorInfo();
void GetMemInfo();

int main(int argc, char* argv[])
{

GetProcessorInfo();
GetMemInfo();
GetDeviceInfo();

return 0;
}

void GetProcessorInfo()
{
SYSTEM_INFO sysInfo;
string processorType;

GetSystemInfo (&sysInfo);

if (sysInfo.dwProcessorType == PROCESSOR_INTEL_386)
{
processorType = "Intel 386";
}
else if (sysInfo.dwProcessorType == PROCESSOR_INTEL_486)
{
processorType = "Intel 486";
}
else if (sysInfo.dwProcessorType == PROCESSOR_INTEL_PENTIUM)
{
processorType = "Intel Pentium";
}
else if (sysInfo.dwProcessorType == PROCESSOR_MIPS_R4000)
{
processorType = "MIPS";
}
else if (sysInfo.dwProcessorType == PROCESSOR_ALPHA_21064)
{
processorType = "Alpha";
}
else {
processorType = "Unknown";
}

cout << processorType << " " << sysInfo.dwNumberOfProcessors << "核" << endl;
}

void GetMemInfo()
{
MEMORYSTATUS status;

GlobalMemoryStatus(&status);

cout << "内存使用率:" << status.dwMemoryLoad << "%" << endl;
cout << "总物理内存大小:" << status.dwTotalPhys / (1024*1024) << "M" << endl;
cout << "可用物理内存大小:" << status.dwAvailPhys / (1024*1024) << "M" << endl;
}
VB不能直接调用Win API,要先声名然后在调用。 声明 API 过程 ,比如声名SetWindowTextA 首先,在模块的声明部分对过程进行声明: Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long 过程的精确语法定义可以用 API Viewer 应用程序找到,在 Win32api.txt 文件中也可以找到它。如果将 Declare 放在 Form 或者 Class 模块内,那么必须在它的前面加上 Private 关键字。同一个 API 过程在一个工程中只需声明一次;然后可以任意调用。 调用 API 过程 在声明了函数之后,调用它的方式与标准的 Visual Basic 函数相同。在下例中,Form Load 事件调用了上面声明的过程。 Private Sub Form_Load() SetWindowText Form1.hWnd, "Welcome to VB" End Sub 
所谓API就是MFC中的一些函数,按照函数声明直接调用。

上一个:c++中怎样声明数组
下一个:如何理解C++程序

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,