在vc6上搭建sdl的开发环境

sdl有跨平台的directx之称、通常与opengl配合便可以实现3d游戏的开发、

首先去http://www.libsdl.org/index.php下载sdl的vc包、注意是下载Development Libraries的版本、不是Source Code、当然迩也可以下载源码自己去用VC编译、不过比较麻烦就不说了、下载完后解压、里面有include和lib目录、这两个是最主要的、然后去到vc6的安装目录、通常在C:\Program Files\Microsoft Visual Studio目录下、

进入vc98目录、看到include目录和lib目录、分别把sdl下载的头文件和库文件放在这两个目录就可以了、首先进入vc98的include目录、新建sdl文件夹、然后把sdl解压包下的include文件拷贝到sdl文件夹中、

然后再把sdl解压包下的lib目录下的sdl.lib和sdlmain.lib文件拷贝到vc98的lib目录、注意sdl解压包下的lib目录下分为x86和x64两种版本、如果迩的开发机是32位、便把x86的文件夹拷贝过去、如果是64位会麻烦点、接下来会再说

最后再把相应平台的sdl.dll拷贝到C:\WINDOWS\system32目录下、现在就大功告成了、迩可以写一段小代码来测试一下环境是否正常、

在vc6里新建一个win32程序、在下一步选择“一个空项目”、新建cpp然后填写下列代码

#pragma comment(lib, "sdl.lib")


#include <windows.h>

#include "sdl/sdl.h"

int _stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) {
        fprintf(stderr, "无法初始化SDL: %s\n", SDL_GetError());
        exit(1);
    }

    atexit(SDL_Quit);


    SDL_Surface *screen;

    screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
    if ( screen == NULL ) {
        fprintf(stderr, "无法设置640x480的视频模式:%s\n", SDL_GetError());
        exit(1);
    }



     return 0;
}

会有一个窗口闪一下、是因为没有循环的缘故、如果无报错的话就大功造成了、

==========

接下来说说如果迩的机器是64位的话、比如迩的机器是win7的64位版本、环境配置要改一下、但依然是拷贝x86的库文件、在64位的机器运行32位的程序、头文件和库文件的安装方法都一致、而区别就是动态链接库并不是拷贝到windwos/system32目录下、而是拷贝到windows/syswow64目录下、syswow64是一个64位操作系统下的32位子操作系统、所以别看到名字有个64就猛的把64位的库往里扔、大错特错、里面的都是32位的程序文件、至于更进一步的解析可以看百度百科上的解析(http://baike.baidu.com/view/3403344.htm

参考文档:

http://blog.csdn.net/lukecheng/article/details/2962176

http://baike.baidu.com/view/3403344.htm

原文地址:https://www.cnblogs.com/klobohyz/p/2545701.html