flat assembler
Message board for the users of flat assembler.

Index > Windows > [solved] where do I get the Macros for comcall and cominvk

Author
Thread Post new topic Reply to topic
machinecoder



Joined: 07 Apr 2013
Posts: 27
machinecoder
I want to make a link progmatically, found an example in this forum already, but it wont compile since I dont seem to have those two macros?

comcall / cominvk

so it wont compile, do I need to download the latest FASM, or do you have a link to them somewhere in this forum.

I Need to create a shortcut progmatically using FASM Razz


Last edited by machinecoder on 18 Aug 2013, 13:27; edited 1 time in total
Post 17 Aug 2013, 17:17
View user's profile Send private message Reply with quote
machinecoder



Joined: 07 Apr 2013
Posts: 27
machinecoder
Found the Macros but

chucks a hissy fit and says "illegal instruction"
Code:
   cominvk psl,QueryInterface, IID_IPersistFile,ppf
    


Instruction box says this is the problem: assert defined com.object.psl

sounds like I have a missing Macro "assert" or "defined" , I dont know Crying or Very sad

Code:
macro cominvk object,proc,[arg]
 { common
    if ~ arg eq
   reverse
     pushd arg
   common
    end if
    assert defined com.object.#object ; must be a COM object
    mov eax,[object]
    push eax
    mov eax,[eax]
    call [eax+object#.#proc] }
    


who ever said humans are smarter than machines wasn't a programmer Laughing
Post 17 Aug 2013, 17:20
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 3045
Location: vpcmipstrm
bitRAKE
Those macros complement the interface macro. How have you defined psl and the object interface? Is it similar to the FASM download example?

assert is a control directive.
defined is an operator.
Post 17 Aug 2013, 19:45
View user's profile Send private message Visit poster's website Reply with quote
machinecoder



Joined: 07 Apr 2013
Posts: 27
machinecoder
Never mind, I downloaded the latest verion of FASM and it works !

Good stuff, just the code I needed.

Although if you try and use it as a subroutine the call's return address gets corrupted and it wont return from the subroutine ,still works for me

Just have to repeat the code twice, instead of calling it
Post 18 Aug 2013, 02:49
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.