Hi Jeremy
I was trying to find out why this won't compile and found a bug...
CoInvoke(psfDesktop,IShellFolder.ParseDisplayName,0,0, \
L'::{450d8fba-ad25-11d0-98a8-0800361b1103}',offset chEaten, \
offset pidlDocFile,0)
The problem appears to be in the parsing of the string, the following assembles fine
CoInvoke(psfDesktop,IShellFolder.ParseDisplayName,0,0, \
L'hello',offset chEaten, \
offset pidlDocFile,0)
It is only when the
curly brackets are added to a string that the following error is thrown...
QuoteInappropriate or missing operand to the mnemonic
add eax, IShellFolder.ParseDisplayName \
call [eax]
OBJ file not made
This problem only appears to be present when using a macro like CoInvoke, in normal circumstances it doesn't cause an error, for example...
invoke GetModuleHandle,L"::{450d8fba-ad25-11d0-98a8-0800361b1103}"
assembles perfectly fine.
Edgar
Hi Edgar
Thanks for reporting this bug, which I shall look at asap.
The latest version of GoAsm available from here (http://www.jorgon.freeserve.co.uk/Goasm.zip):-
- sorts out this bug and some others
- adds automatic structure alignment in Win32 (this was already happening when using local data)
- adds support for #dynamiclinkfile which allows you to specify in the asm source a dll/ocx/exe/drv file which exports functions used in your program, instead of in the linker's command line or command file (you need GoLink 0.26.5 (http://www.jorgon.freeserve.co.uk/Golink.zip) for this to work)
Wow...
That is easily the fastest fix I have ever seen, all of the problems I reported appear to be things of the past, thank you very much Jeremy !
BTW, #dynamiclinkfile is a great addition, I will definitely be using it from now on. Especially since it appears to be OK in the include files, I plan to put the library name in each of the .H files I am creating making it relatively automatic.
Edgar