本人现在正在做一个项目,其中有一部分是用汇编语言编写的算法,  现在要在VC 开发的工程文件中调用这些函数如何做到,请各位高手不吝赐教.(这些函数是放在一个.asm文件中的,最好能附一些源文件.)

解决方案 »

  1.   

    用一个专门的头文件来声明ASM中的函数,比如在test.asm 中有一个函数void Func(int a)
    则在test.h文件中用以下声明: 
    extern "C" void Func(int a);以后别的地方就可以引用了
      

  2.   

    Agree c0der
    连接时将汇编的OBJ文件连接即可!!!要使用MASM
      

  3.   

    VC编译器在装配时就是把相关的OBJ和LIB拼成一个EXE或DLL
    而OBJ既可由ASM汇编产生,也可由C、CPP、PAS等文件编译产生,实际上有的高级语言编译器就是把高级语言源程序先编译成ASM程序,然后再将ASM汇编为OBJ的。
    由此可见,调用ASM中的函数的方法与调用其它C文件中的函数类似,只需要将其OBJ文件加入Project中,并对所调用的函数作一个恰当的声明即可。不过需要注意函数的调用约定。
      

  4.   

    VC提供了一些支持,可以自动的编译汇编文件,你可以按照以下步骤进行: 
    在菜单中选择“Project | Settings...” 
    选中指定的汇编文件(单击即可) 
    选中Custom Build页 
    在Commands中输入:
    如果是DEBUG模式,则输入: 
    e:\masm32\bin\ml /c /coff /Zi /FoDEBUG\$(InputName).obj $(InputPath) 如果是RELEASE模式,则输入: 
    e:\masm32\bin\ml /c /coff /FoRELEASE\$(InputName).obj $(InputPath)在Outputs中输入:
    如果是DEBUG模式,则输入: 
    DEBUG\$(InputName).obj如果是RELEASE模式,则输入: 
    RELEASE\$(InputName).obj如果你的没有把masm安装在E盘,则要作相应的修改。
    相应的参数还有必要再解释一下:
    “/c”表示只编译不链接。“/coff”表示生成coff格式的目标文件,这是在 VC中使用的文件格式。“/Zi”表示需要产生符号信息,便于调试。