游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1753|回复: 3

DX链接的一个问题,好奇怪啊

[复制链接]

28

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
QQ
发表于 2004-2-27 01:51:00 | 显示全部楼层 |阅读模式
IDE环境 VC6.0 + sp6 + DX9.0 SDK
IDE的include和lib都已经设置好,DX的include和lib都在搜索目录的最前

测试一 创建一个console空工程
添加一个main.cpp
工程的ddraw.lib已经添加在lib module里面
代码如下
#define INITGUID

#include <windows.h>   // include important windows stuff
#include <ddraw.h> // include directdraw


int main()
{
    void* lpdd = NULL;
    if (FAILED(DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL)))
       return(0);
    return 0;
}

可以编译通过

测试二 创建一个dll简单工程test_dll
在test_dll.cpp中代码如下
ddraw.lib 也添加到工程的lib module下

#include "stdafx.h"
#include <ddraw.h> // include directdraw

#define INITGUID

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
    void* lpdd = NULL;
    // create IDirectDraw interface 7.0 object and test for error
    if (FAILED(DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL)))
       return(0);
    return TRUE;
}

出现编译错误
--------------------Configuration: test_dll - Win32 Debug--------------------
Linking...
test_dll.obj : error LNK2001: unresolved external symbol _IID_IDirectDraw7
Debug/test_dll.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test_dll.dll - 2 error(s), 0 warning(s)


不知道为什么会这样?大家看看到底出了什么问题

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-2-27 03:22:00 | 显示全部楼层

Re:DX链接的一个问题,好奇怪啊

出现这个原因是因为你没有包括GUID的定义,只需要含入dxguid.lib这个库就可以了。
含入LIB的话就不用#define INITGUID了

28

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
QQ
 楼主| 发表于 2004-2-27 08:46:00 | 显示全部楼层

Re: DX链接的一个问题,好奇怪啊

恩,非常感激,终于解决了这个问题,但还有一个问题搞不明白,为什么exe的能够编译通过呢,望大虾指点,如果说是找不到GUID,那exe也应该找不到阿,难道exe的编译和dll的编译有不一样?我糊涂了

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-2-27 12:20:00 | 显示全部楼层

Re:DX链接的一个问题,好奇怪啊

呵呵,其实两段代码都没有问题,只不过你如果用#define INITGUID宏而不是含入LIB的话,要在含入头文件之前定义#define INITGUID,就这么简单 :)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 13:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表