When compiling the scrontsoft directx8.1 examples with masm I'll always get this error:

"unresolved external symbol _IID_IUnknown"

what am I doing wrong ?
Posted on 2003-08-07 10:13:51 by Siekmanski
Maybe, you are not linking with all needed libs :-?

I guess dxguid.lib
Posted on 2003-08-07 18:58:16 by BogdanOntanu
Afternoon, Siekmanski.

1) Which example/s do you get the error with.
2) Did you modify the example/s in any way?

Cheers,
Scronty
Posted on 2003-08-08 05:24:59 by Scronty
Hello Bogdan and Scronty

I've linked the dxguid.lib from the SDK but no results.
When I exchange the release lib "d3dx8.lib"with the debug lib "d3dx8d.lib"
everything compiles OK but not everybody has the d3dx8d.dll on his
computer.

I have made no changes in the scrontsoft dx8.1 examples so they should
compile with the release lib of d3dx8 but I can not find what I'm doing
wrong.

Here is the result I get when compiling the "textures"example: (the dx8.1 examples)

d3dx8.lib (cd3dxbuffer.obj): error LNK2001 unresolved external symbol _IID_IUnknown
d3dx8.lib (cd3dxfont.obj): error LNK2001 unresolved external symbol _IID_IUnknown
d3dx8.lib (cd3dxsprite.obj): error LNK2001 unresolved external symbol _IID_IUnknown
d3dx8.lib (cd3dxrendertosurface.obj): error LNK2001 unresolved external symbol _IID_IUnknown
d3dx8.lib (cd3dxrendertoenvmap.obj): error LNK2001 unresolved external symbol _IID_IUnknown

:fatal error LNK1120: 1 uresolved externals
Posted on 2003-08-08 05:30:42 by Siekmanski
Afternoon, Siekmanski.

Did you download the files from the Includes page? (.inc/.lib/etc)?

Cheers,
Scronty
Posted on 2003-08-08 06:01:58 by Scronty
Hello Scronty

Yes I downloaded everything and put it in the right place.
All will assemble fine but when linking something is going bad.
And if I exchange d3dx8.lib with d3dx8d.lib everything is OK but that
is not what I want.

Greetz Siekmanski
Posted on 2003-08-08 06:18:26 by Siekmanski
Afternoon, Siekmanski.

Next question:
How are you reassembling the example?

They are made so that you can use QEditors' "Project->Build All" menu option.
Does that work for you?

Cheers,
Scronty
Posted on 2003-08-08 06:32:38 by Scronty
hello Scronty

Yes I folowed all the instructions and used "build all"
First I missed the libs "uuid.lib and libci.lib" but I had allready installed them in
masm32 lib directory but still couldn't assemble and link the proggy
Then I inserted those two libs in the textures example dir... and yes proggy
could be assembled but not linked.

Greetz Siekmanski.
Posted on 2003-08-08 06:59:19 by Siekmanski
Afternoon, Siekmanski.

It's definitely a missing lib that d3dx8.lib requires (i.e. something similar to that libci.lib file).

I'm downloading Masm32v8 so that I have a clean installation of it.
Then I'll download the DX8.1 include/lib/etc files.

We should be able to nail down the missing lib after that (hopefully:tongue: )

Cheers,
Scronty
Posted on 2003-08-08 07:22:00 by Scronty
Hello Scronty

I allready did a clean installation of Masm32v8 whith the same results.
Maybe you will be able to find the missing lib, I've dun everything in my
powers to solve this error and I'm very happy you'll help me with this.

Greetz Siekmanski
Posted on 2003-08-08 07:56:10 by Siekmanski
Afternoon, Siekmanski.

I downloaded and installed Masm32v8.

From : http://www.scrontsoft.com/win32asmdefault.asp

I downloaded from the DX8.1 Includes page:
All-Includes.zip - placed in Masm32\Include\
All-Libs-Except-d3dx8.zip - placed in Masm32\Lib\
d3dx8.zip - placed in Masm32\Lib\

msvcr70.zip - placed in WINDOWS\system32

dx_objbase.zip - placed in Masm32\Include\
objbase.zip - placed in Masm32\Include\

Downloaded from the DX8.0 Includes page:
winextra.zip - placed in Masm32\Include\
unicode.zip - placed in Masm32\Include\

Then downloaded the Texture.zip proggy from the DX8.1 Tutorials page.

Using QEditors' "Project->Build All" menu option, it assembled and linked fine:alright: .

Do you see any which you may have missed?

Cheers,
Scronty
Posted on 2003-08-08 08:05:12 by Scronty
Hi Scronty

I've done all of that severall times and believe me , missed no file.
The only thing that I can think of is that maybe during the
installation of Masm32v8 on my PC something went wrong.
I'll try to install Masm32v8 on an other (older) PC and then
copy all the files to my PC "pentium 4 2.6 Ghz with XP home edition"

This is the last thing I can think of, because during installation I noticed
that the libs where assembled and linked on the fly and if I'm not wrong
saw some linking errors in there allso.

Scronty, thank you very much helping me, I'll let you know if I find the bug.

Greetz Siekmanski
Posted on 2003-08-08 08:40:10 by Siekmanski
Afternoon, Siekmanski.

Hope it works out.

I'm on a WinXP Pro, 2.4gig, however the stuff was developed on a WinMe machine.

Just to ask a stupid question:
You *do* have DX8.1 installed, right?:grin:
It comes installed on WinXP, but cannot be installed on Win95 machines.

Cheers,
Scronty
Posted on 2003-08-08 09:04:29 by Scronty
Hello Scronty

I have allso installed the directx8.1 SDK from microsoft and had no problems
when compiling everything with microsoft visual C++ v6.0.
I'm programming sinds the early AMIGA days in ASM and was very happy to find
your dx81 includes on the net so I can code all my DX3d stuff in assembler instead
of C++.

There must be a way to find out whats going wrong and I'll find it !!!!!


Greetz Siekmanski
Posted on 2003-08-08 10:02:56 by Siekmanski
I had this problem until I started putting UUID and LIBCI in the project folder itself.
If it's just IUnknown, you should just define IUnknown by hand - let's see what happens then :)

If you have the GUID macro, use it as follows:


IID_IUnknown GUID {00000000,0000,0000,0C0h,00,00,00,00,00,00,46h}}
Posted on 2003-08-08 10:42:39 by Homer
cannot be installed on Win95 machines.

Sorry for offtopic, but it can.
At least on Win95OSR2 + DCOM95
Posted on 2003-08-08 22:54:09 by S.T.A.S.
Hello EvilHomer2k


I've put this line in the code:

IID_IUnknown GUID {00000000,0000,0000,<0C0h,00,00,00,00,00,00,46h>}

Still the same linking errors.

Greetz Siekmanski
Posted on 2003-08-09 01:53:44 by Siekmanski
Afternoon, S.T.A.S..

Sorry for offtopic, but it can.
At least on Win95OSR2 + DCOM95


For DX8.1?
Is that an assumption, or do you actually have dx8.1 installed on a Win95 machine?

According to Microsoft information, the last version of DX capable of be *installed* on Win95 was DX8.0a .

DX8.0b , DX8.1 and DX9 cannot be *installed*.

I can't see how it could matter what extra COM support is installed if the installation program stops installing once it discovers that it's a Win95 machine.

Cheers,
Scronty
Posted on 2003-08-09 05:11:38 by Scronty
Hello Scronty

I have installed Masm and the DX8.1 examples on an other PC and had no problems.
All examples compiled perfectly.
Then I copied the whole MASM32 directory to my own PC and still I've got the
same errors when linking the examples.
All the needed files are present on my Laptop
The fault must be in my Laptop but, I don't know where to look for it.

Greetz Siekmanski
Posted on 2003-08-13 12:31:58 by Siekmanski
Afternoon, Siekmanski.

Have you had any problems linking any of the normal Masm32 examples on your laptop?

Cheers,
Scronty
Posted on 2003-08-13 21:53:41 by Scronty