遇到问题:
    今天做的一个程序要调用AnimateWindow()函数来实现窗口的动画效果,参考书上在类的成员函数中直接调用该函数,没有做任何处理。然而实验时发现编译通不过。

解决过程:
    查看MSDN后,发现AnimateWindow()函数说明中有以下描述

Function Information

Header Declared in winuser.h, include windows.h
Import library user32.lib
Minimum operating systems Windows 98, Windows 2000

可见:
     1.要添加#include"winuser.h"或#include"windows.h"语句;
     2.在弹出菜单中选择:项目-"工程名"+属性-链接器-输入-附加依赖项,将user32.lib添加进去

但此时编译时还是认不出AnimateWindow()及其参数,在AnimateWindow()上点击右键选"转到声明",发现在winuser.h文件中对AnimateWindow()的声明如下:

#if(WINVER >= 0x0500)
WINUSERAPI
BOOL
WINAPI
AnimateWindow(
    IN HWND hWnd,
    IN DWORD dwTime,
    IN DWORD dwFlags);
#endif /* WINVER >= 0x0500 */

可见如果WINVER的取值不满足WINVER >= 0x0500的条件的话,AnimateWindow()函数的声明将不被编译,在WINVER上点击右键选"转到定义",发现在stdafx.h文件中对WINVER的定义如下:

#ifndef WINVER    // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
#define WINVER 0x0400  //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
#endif

这样问题就出来了,由于WINVER的值不满足WINVER >= 0x0500的条件,导致AnimateWindow()函数的声明不被编译,将#define WINVER 0x0400语句改成#define WINVER 0x0500,再编译,就发现AnimateWindow()函数已经可以识别了。

但是AnimateWindow()函数的一个参数宏仍然不能识别,而其它的参数宏却可以,经过检查发现由于参数宏都是大写字母,是自己一时粗心看错了拼写导致的,改成正确的拼写后程序编译通过!

心得体会:

1.“转到定义“的解决问题的方法十分重要。
    2.对于宏等全大写字母的标志要注意拼写。
    3.MSDN要仔细的阅读。

转载于:https://www.cnblogs.com/toosuo/archive/2007/12/02/979957.html

API函数的调用(包含一个大小写的问题)相关推荐

  1. 【Python 3.7】喜欢的图书:编写一个名为 favorite_book() 的函数,其中包含一个名为 title 的形参。

    [Python 3.7]喜欢的图书:编写一个名为 favorite_book() 的函数,其中包含一个名为 title的形参.这个函数打印一条消息,如 One of my favorite books ...

  2. C#中对 API函数的调用

    C#中对 API函数的调用  1                                              C#中对 API函数的调用  2  3  4    using System ...

  3. python语言下同一个类下有多个函数,其中一个函数想调用另外一个函数里面的变量怎么调用

    一:问题,同一个类下,有多个函数,其中一个函数想调用另外一个函数里面的变量怎么调用 解决方法:在调用函数里面,初始化一下被调用的函数,然后就可以直接使用被调用函数数里面的变量了 self.被调用函数名 ...

  4. vue中在一个函数中调用另外一个函数

    vue中在一个函数中调用另外一个函数 this.$options.methods.函数名.bind(this)();

  5. 【Python——类】 同一个类中一个函数里调用另一个函数的方法

    [Python-类] 同一个类中一个函数里调用另一个函数的方法 class Solution:def a(self):self.b() # 注意这种写法:self.类名def b(self):prin ...

  6. VB中API函数的调用

    1.API函数       API的英文全称(Application Programming Interface),WIN32 API也就是MicrosoftWindows32位平台的应用程序编程接口 ...

  7. VS2010中VB.NET中API函数的调用

    API有两种调用方式: 第一种使用declare的API调用, Declare Function publicname Lib "libname" [Alias "ali ...

  8. python 调用class不指定函数_python调用另一个.py中的类或函数

    同一文件夹下的调用 1.调用函数 A.py文件如下: def add(x,y): print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import A A.add ...

  9. 在一个类的成员函数中调用另一个类的成员函数

    假设你想在类A里调用类B的函数int f(x),两种办法: 1.class A::B  也就是说将B定义为A的父类, 这样你就可以自然的在A里面用f(x)了 2.class A { B B_ins; ...

最新文章

  1. php dedecms 记录访问者ip,dedecms实现显示访问者ip地址的方法
  2. 【PWA学习与实践】(3) 让你的WebApp离线可用
  3. 密码技术--非对称加密算法及Go语言应用
  4. 移动测试中游戏和应用的不同之处
  5. android 布局管理器,【Android开发】布局管理器-表格布局
  6. 1070: [SCOI2007]修车
  7. 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!
  8. 算法题10 最长等差序列问题
  9. 80-200-040-原理-MySQL服务端架构
  10. java modal_Java 源码-模态对话框(Modal Dialog Box)的实现
  11. windows 2003活动目录更名操作[图]
  12. oracle 增删改查语法,转载-增删改查sql语句语法
  13. 【数据库系统工程师复习笔记】0.考试大纲及教程目录
  14. SnifferProDynamipsGUI环境构建
  15. C语言IDE和编辑器比较
  16. TM1640 数码管驱动代码(简化版)
  17. Java实现Redis批量读取List
  18. cpu计算机性能指标有哪些,CPU性能指标有哪些
  19. 不用 IDE,仅用命令行 + SDK 开发 Android App
  20. logN²是O(N)的

热门文章

  1. 算法之旅 | 快速排序法
  2. 诺基亚报告称:到2020年北美电子邮件流量占比将跌至7%
  3. Docker认识基础
  4. 中国移动技术愿景2020+
  5. android自动化框架简要剖析(一):运行原理+基本框架
  6. linux 下实现负载均衡群集(NAT方式)
  7. 朴素贝叶斯分类器 文本分类_构建灾难响应的文本分类器
  8. 68. 文本左右对齐
  9. leetcode 115. 不同的子序列(dp)
  10. json数据转换成表格_电子表格会让您失望吗? 将行数据转换为JSON树很容易。