包含MASM文件

时间:2017-01-28 21:50:05

标签: visual-studio assembly masm

因此,看起来如何使用MASM多年来已经改变了大约50次因为我找到了大量的答案,而不是其中一个有效。

我想知道的是你如何在MASM上调用exitprocess之类的东西?我包含哪些文件/它们在哪里?我正在使用VS2015 Community Edition中内置的ml.exe。我的根驱动器或VS上没有MASM文件夹。 VS没有任何.inc文件(我在驱动器上进行了详尽的搜索)。我只是想做一些简单的事情:

.386
.model flat, stdcall 
option casemap:none 
includelib ?????????????
include ?????????????
.data 
.code 
start: 
    invoke ExitProcess,0 
end start

我尝试过只包含msvcrt.lib,这也行不通。

1 个答案:

答案 0 :(得分:3)

希望有人有更好的答案,但我通过从这个网站安装MASM来解决。它将masm32文件夹放在根目录中(对于我们大多数人来说是C:\)

http://www.masm32.com/download.htm

编辑:此外,.inc文件只是一堆函数原型。所以你可以只想出你想要的任何函数,然后使用includelib来调用它。

http://win32assembly.programminghorizon.com/tut2.html

  

在上面的示例中,我们调用kernel32.dll导出的函数,因此我们需要包含kernel32.dll中的函数原型。那个文件是kernel32.inc。如果您使用文本编辑器打开它,您将看到它充满了kernel32.dll的函数原型。如果你不包含kernel32.inc,你仍然可以调用ExitProcess,但只能使用简单的调用语法。你无法调用该函数。这里的要点是:为了调用一个函数,你必须将它的函数原型放在源代码中的某个地方。在上面的示例中,如果您不包含kernel32.inc,则可以在invoke命令上方的源代码中的任何位置定义ExitProcess的函数原型,它将起作用。包含文件可以为您节省自己输入原型的工作,因此请尽可能使用它们。

topic

但我可以轻松删除包含:

.386 
.model flat, stdcall 
option casemap:none 
include C:\masm32\include\windows.inc 
include C:\masm32\include\kernel32.inc 
includelib C:\masm32\lib\kernel32.lib 
.data 
.code 
start: 
    invoke ExitProcess,0 
end start