The MASM Forum
General => The Campus => Topic started by: 5k3l3t0r on June 11, 2012, 04:15:53 AM
-
hi all,
i have a static lib that export some functions, the problem comes wen i try to export a function that uses C calling convenction and VARARG:
myFunction proto C :DWORD,:VARARG
.code
myFunction proc C param:DWORD,args:VARARG
ret
myFunction endp
the .def
LIBRARY myLibrary.lib
EXPORTS func1 @1 --------------->this work ok
func2 @2 --------------->this work ok
myFunction @3 ------> can't call this function
i must export that function in some diferent way?
bye
5k3l3t0r
PLEASE READ THE NO HELP DESK RULE. This is a forum of member, not a help desk. I have removed the [solved] from the title.
-
C-style functions should have their exported names prefixed with underscore, try _myFunction ;)
-
hi Tedd
i have tried what you suggest and have build errors :
ReTool-2.0.def : error LNK2001: unresolved external symbol _RTCallModuleFunction
ReTool-2.0.def : error LNK2001: unresolved external symbol _RTLogMessageEx
ReTool-2.0.lib : fatal error LNK1120: 2 unresolved externals
LINK : fatal error LNK1141: failure during build of exports file
any other option?
tkx
5k3l3t0r
-
you can see what the export names are by using something like dependency walker
or use one of Erol's tools - a number of ways to see what is exported by the lib
then - you will want a proper prototype
i suspect this is what may be missing
-
without the underscore the lib compile ok, but the i can't use the function in my exe that import that lib,
wen i try to compile the exe get
"error A2006: undefined symbol : RTLogMessageEx"
all other functions without the c style work ok
if i add the underscore to the def file, the lib wont compile...
this is the name in the export table:
http://screensnapr.com/v/tlAvi6.png
tkx
5k3l3t0r
-
maybe you could make an example library and post the source
it would be easier than each of us writing a lib :P