看过一个API讲座什么的书,讲到如何使用API浏览器定义声明函数啥的,太枯燥看不下去了。什么情况下要使用API?它能干什么?谁给讲一讲?

解决方案 »

  1.   

    我刚学api 的时候也是这样很茫然。我感觉可以自己做一些自己感兴趣小程序,在需求中学习比较快。例如用api做一个小外挂可能在做的时候很痛苦,反正不知道就百度。一旦做好了开始有多痛苦后面就有多爽前面不懂没多大关系只要慢慢多写代码慢慢去体会自然就会了
      

  2.   

    咱们想法差不多,我现在就是不断的给自己找题目找项目,做些小玩意,做了像素鸟,混合算式计算器。
    谁给个必须要用API的小项目?
      

  3.   

    程序入口选main,不添加任何窗体写出窗体程序
      

  4.   

    查MSDN是Windows程序员必须掌握的技能之一。
    MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix,  MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl
      

  5.   

    API就是函数而已, 用起来和VB内置的Cos(), Format()这种内置函数没有区别.
    唯一的差异只在于API是系统定义的, 在VB里面使用的时候先要告诉VB一下(就是API申明)
      

  6.   

    我如果调用c++生成的动态链接库,应该怎么声明
    #ifndef _COM_AVD_DEV_SDK_H_
    #define _COM_AVD_DEV_SDK_H_#include "com_type.h"
    #include <vector>
    using std::vector;#ifdef __cplusplus
    extern "C"
    {
    #endif
        /**************************************    IMPELEMENTED     ***********************************************/
        AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_Init();    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_DeInit();    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCamera(COM_LONG* plDeviceHandle,
                                                                 const COM_CHAR* psSturnIp, COM_S32 iSturnPort,
                                                                 const COM_CHAR* psTurnIp, COM_S32 iTurnPort,
                                                                 const COM_CHAR* psRelayIp, COM_S32 iRelayPort,
                                                                 const COM_CHAR* psUsername, const COM_CHAR* psPassword,
                                                                 const COM_CHAR* psDeviceIp, COM_S32 iDevicePort,
                                                                 COM_S32 iMode, COM_U32 u32_connectype, COM_U32 u32ChannelID);    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCameraByDDNS(COM_LONG* plDeviceHandle, 
                                                                       const COM_CHAR* pzDDNSServer, 
                                                                       const COM_CHAR* pzDDNSName,
                                                                       COM_S32 iDisplayMode, COM_U32 u32_channelid = 1);    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCameraByDDNSV2(COM_LONG* plDeviceHandle, 
                                                                         const COM_CHAR* pzDDNSServer, 
                                                                         const COM_CHAR* pzDDNSName,
                                                                         const COM_CHAR* pzUserName,
                                                                         const COM_CHAR* pzPassword,
                                                                         COM_S32 iDisplayMode, 
                                                                         COM_U32 u32_channelid = 1);
    给我示范一个吧
    type.h
    #ifndef __COM_TYPE_H__
    #define __COM_TYPE_H__#ifdef COM_OS_LINUX
        #define AVDSDK_API __attribute ((visibility("default")))
        #define AVDSDK_APICALL
    #elif defined COM_OS_ANDROID
        #define AVDSDK_API
        #define AVDSDK_APICALL
    #elif defined AVDLIB_LIB
        #define AVDSDK_API
        #define AVDSDK_APICALL
    #else
        #define AVDSDK_API __declspec(dllexport)
        #define AVDSDK_APICALL  __stdcall
    #endif   #ifdef __cplusplus
    #if __cplusplus
    extern "C"{
    #endif
    #endif /* __cplusplus */    typedef unsigned char          COM_U8;
        typedef unsigned char          COM_UCHAR;
        typedef unsigned short         COM_U16;
        typedef unsigned int           COM_U32;    typedef signed char            COM_S8;
        typedef short                  COM_S16;
        typedef int                    COM_S32;#ifndef _M_IX86
        typedef unsigned long long     COM_U64;
        typedef long long              COM_S64;
    #else
        typedef __int64                COM_U64;
        typedef __int64                COM_S64;
    #endif    typedef char                   COM_CHAR;
        typedef char*                  COM_PCHAR;    typedef float                  COM_FLOAT;
        typedef double                 COM_DOUBLE;
        typedef void                   COM_VOID;    typedef unsigned long          COM_SIZE_T;
        typedef unsigned long          COM_LENGTH_T;
        typedef unsigned long          COM_ULONG;    typedef long    COM_LONG;    typedef enum {
            COM_FALSE    = 0,
            COM_TRUE     = 1,
        }COM_BOOL;#ifndef NULL
        #define NULL             0L
    #endif
        #define COM_NULL           0L
    #define COM_NULL_PTR       0L#define COM_SUCCESS           1
    #define COM_FAILURE           0
    #define COM_NOIMPLEMENT        0#ifdef __cplusplus
    #if __cplusplus
    }
    #endif
    #endif /* __cplusplus */#endif /* __COM_TYPE_H__ */
      

  7.   

    我如果调用c++生成的动态链接库,应该怎么声明
    #ifndef _COM_AVD_DEV_SDK_H_
    #define _COM_AVD_DEV_SDK_H_#include "com_type.h"
    #include <vector>
    using std::vector;#ifdef __cplusplus
    extern "C"
    {
    #endif
        /**************************************    IMPELEMENTED     ***********************************************/
        AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_Init();    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_DeInit();    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCamera(COM_LONG* plDeviceHandle,
                                                                 const COM_CHAR* psSturnIp, COM_S32 iSturnPort,
                                                                 const COM_CHAR* psTurnIp, COM_S32 iTurnPort,
                                                                 const COM_CHAR* psRelayIp, COM_S32 iRelayPort,
                                                                 const COM_CHAR* psUsername, const COM_CHAR* psPassword,
                                                                 const COM_CHAR* psDeviceIp, COM_S32 iDevicePort,
                                                                 COM_S32 iMode, COM_U32 u32_connectype, COM_U32 u32ChannelID);    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCameraByDDNS(COM_LONG* plDeviceHandle, 
                                                                       const COM_CHAR* pzDDNSServer, 
                                                                       const COM_CHAR* pzDDNSName,
                                                                       COM_S32 iDisplayMode, COM_U32 u32_channelid = 1);    AVDSDK_API COM_S32 AVDSDK_APICALL COM_AVD_DEV_OpenCameraByDDNSV2(COM_LONG* plDeviceHandle, 
                                                                         const COM_CHAR* pzDDNSServer, 
                                                                         const COM_CHAR* pzDDNSName,
                                                                         const COM_CHAR* pzUserName,
                                                                         const COM_CHAR* pzPassword,
                                                                         COM_S32 iDisplayMode, 
                                                                         COM_U32 u32_channelid = 1);
    给我示范一个吧
    type.h
    #ifndef __COM_TYPE_H__
    #define __COM_TYPE_H__#ifdef COM_OS_LINUX
        #define AVDSDK_API __attribute ((visibility("default")))
        #define AVDSDK_APICALL
    #elif defined COM_OS_ANDROID
        #define AVDSDK_API
        #define AVDSDK_APICALL
    #elif defined AVDLIB_LIB
        #define AVDSDK_API
        #define AVDSDK_APICALL
    #else
        #define AVDSDK_API __declspec(dllexport)
        #define AVDSDK_APICALL  __stdcall
    #endif   #ifdef __cplusplus
    #if __cplusplus
    extern "C"{
    #endif
    #endif /* __cplusplus */    typedef unsigned char          COM_U8;
        typedef unsigned char          COM_UCHAR;
        typedef unsigned short         COM_U16;
        typedef unsigned int           COM_U32;    typedef signed char            COM_S8;
        typedef short                  COM_S16;
        typedef int                    COM_S32;#ifndef _M_IX86
        typedef unsigned long long     COM_U64;
        typedef long long              COM_S64;
    #else
        typedef __int64                COM_U64;
        typedef __int64                COM_S64;
    #endif    typedef char                   COM_CHAR;
        typedef char*                  COM_PCHAR;    typedef float                  COM_FLOAT;
        typedef double                 COM_DOUBLE;
        typedef void                   COM_VOID;    typedef unsigned long          COM_SIZE_T;
        typedef unsigned long          COM_LENGTH_T;
        typedef unsigned long          COM_ULONG;    typedef long    COM_LONG;    typedef enum {
            COM_FALSE    = 0,
            COM_TRUE     = 1,
        }COM_BOOL;#ifndef NULL
        #define NULL             0L
    #endif
        #define COM_NULL           0L
    #define COM_NULL_PTR       0L#define COM_SUCCESS           1
    #define COM_FAILURE           0
    #define COM_NOIMPLEMENT        0#ifdef __cplusplus
    #if __cplusplus
    }
    #endif
    #endif /* __cplusplus */#endif /* __COM_TYPE_H__ */
    参考: http://blog.csdn.net/emma_he/article/details/3023337