• 7 odgovora
  • 3.885 pregleda
...undefined symbol : GetNextWindow 18.08.2005. u 21:16 · pre 257 meseci #1
MASM32 8 + SP2 pri assembliranju dobijam poruku:

...undefined symbol : GetNextWindow

Kako to popraviti?
Potpis
[ :. n!t .: ]
Re: ...undefined symbol : GetNextWindow 19.08.2005. u 02:06 · pre 257 meseci #2
Moras da includujes fajlove u kojima je definisana ta API funkcija
probaj da dodas u include deo tvog sors fajla sledece

Code:

include User32.inc
includelib User32.lib
Potpis
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
Re: ...undefined symbol : GetNextWindow 19.08.2005. u 07:42 · pre 257 meseci #3
Been there, done that... ;)

U user32.inc uopste ne postoji taj API!
Potpis
[ :. n!t .: ]
Re: ...undefined symbol : GetNextWindow 26.08.2005. u 06:13 · pre 257 meseci #4
Koliko se ja razumem u masm i win API uopste a to je slabo (ja sam linuxas sa petodnevnim
win32 asm iskustvom, bilo nekad ne ponovilo se :)) mozes deklarisati svoj prototip.
Po msdn ta f-ja izgleda ovako:

Code:

HWND GetNextWindow(      

    HWND hWnd,
    UINT wCmd
);

Dakle, masm prototip bio bio nesto kao

Code:
GetNextWindow PROTO :DWORD, :DWORD


Neka me neko ispravi ako pricam gluposti. Mikky? ;))
Re: ...undefined symbol : GetNextWindow 26.08.2005. u 22:02 · pre 257 meseci #5
Probao sam i to. A kad probam na napravim lib fajl s inc2l user32.inc pokaze mi gresku...
Potpis
[ :. n!t .: ]
Re: ...undefined symbol : GetNextWindow 27.08.2005. u 03:22 · pre 257 meseci #6
ehhh sto je taj tasm zakon


extrn GetNextWindow:proc
call GetNextWindow


inace taj ti se API nalazi u user32.dll...
Ako vec nece da ti linkuje iz ko zna kojih razloga onda ti lepo uzmi LoadLibraryA i GetProcAddress pa nadjes i pozvas je rucno...
Re: ...undefined symbol : GetNextWindow 28.08.2005. u 18:36 · pre 257 meseci #7
huh? Bit ce da se pozabavim s LoadLibrary i GetProcAddress ;)
Ipak hvala...
Potpis
[ :. n!t .: ]
Re: ...undefined symbol : GetNextWindow 29.08.2005. u 23:11 · pre 257 meseci #8
Sve si dobro uradio sam si trebao da includujes lib fajl u kome se nalazi ta funkcija
Code:

includelib user32.lib


Inace posto koristis MASM nema potrebe da pises prototipove za sve API-je koje koristis, to sve vec imas gotovo u inc fajlovima u masm folderu. Odnosno ovako
Code:

include user32.inc
includelib user32.lib


Npr ja koristim sledeci template kad zapocinjem novi program. U njemu su ti ukljuceni svi glavni inc i lib fajlovi pa u vecini slucajeva neces morati da se zezas sa time.

Code:

.486
.model flat, stdcall
option casemap :none

include        windows.inc
include        user32.inc
include        kernel32.inc
include        comctl32.inc
include        advapi32.inc
include        shell32.inc
include        rasapi32.inc
include        wsock32.inc
include        masm32.inc
include     ole32.inc
include     shlwapi.inc
include        comdlg32.inc  
include        version.inc
include        gdi32.inc

includelib    gdi32.lib
includelib    comdlg32.lib
includelib    user32.lib
includelib    kernel32.lib
includelib    comctl32.lib
includelib    advapi32.lib
includelib    shell32.lib
includelib    rasapi32.lib
includelib    wsock32.lib
includelib    masm32.lib

.const

.data?

.data

.code
start:
    

end    start    
Potpis
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme