我正在尝试为此问题在逆向工程 stackexchange 上编译一个 16 位 Windows DLL 。
以下是我的绝对最小源文件:
我的dll.c
int main (int reason) {
return 0;
}
我的dll.lnk
FORMAT WINDOWS DLL
LIBPATH .\openwatcom\lib286
LIBPATH .\openwatcom\lib286\win
LIBRARY windows
FILE mydll.obj
NAME mydll
我是他们使用以下两个命令来编译和链接 DLL。
# Build
openwatcom\binnt\wcc.exe -i='openwatcom\h;openwatcom\h\win' -bd -w4 -d2 -zu -bt=windows -fo=.obj -ml mydll.c
# Link
openwatcom\binnt\wlink.exe @mydll.lnk
但由于某种原因,链接步骤失败并显示以下消息:
Error! E2028: __DLLstart_ is an undefined reference
Error! E2028: __fpmath is an undefined reference
creating a Windows dynamic link library
file clibl.lib(sigfpe.c): undefined symbol __fpmath
我的目标只是能够构建一个 16 位 DLL 文件,最好是在我的 Mac 上使用 wine,但我也有一个 Windows XP 虚拟机,所以这也是可以接受的。