我正在维护我们的应用程序的构建过程,它由一个ASP.Net应用程序、两个不同的Win32服务和其他与sysadmin相关的应用程序组成。
我希望在调试和部署时都使用下面的配置。
libraires/ -- Contains shared assemblies used by all other apps.
web/ -- ASP.Net site
service1/ -- Win32 service 1 (seen under the service control manager)
service2/ -- Win32 service 2
admin
我正在编写一个程序,它将使用MASM调用一些C++函数。我在一个单独的文件中定义了两个整数之和并显示输出。
目前,我无法让“main.cpp”运行asmMain()来调用'main.cpp‘中的函数。
code.asm
; ---------------------------------------
promptFirst PROTO C
promptSecond PROTO C
printInt PROTO C
.586
.model flat, stdcall
.stack 4096
; --------------------------------------
我目前正试图在Linux操作系统上编译Windows应用程序。我需要交友来做这件事。我读到Debian附带了已经安装的mingw软件包。当我运行shell命令时:
apt-cache search mingw
我得到一个输出:
binutils-mingw-w64 - Cross-binutils for Win32 and Win64 using MinGW-w64
binutils-mingw-w64-i686 - Cross-binutils for Win32 (x86) using MinGW-w64
binutils-mingw-w64-x86-64 - Cross-binutil
要用32位汇编语言编写完整的程序,可以这样开始,
.686
.model flat,c
.stack 100h
.data
number sdword 5
.code
main proc
mov eax,number
ret
main endp
end main
而在64位模式下,代码编写为
.data
number sdword 5
.code
main proc
mov eax,number
ret
main endp
end
设置设置为默认,这导致在64位模式下组装时出现错误,这不是因为平台被设置为Win32,而是默认的入口点mainCRTStartup。要解决这个问题,必须在高级链接器