我有一个别人写的16位程序,怎样用比较简单的方法(尽量少更改源代码)来将次程序编译为32位程序.多谢!!!#include <windows.h>
#include <string.h>
#include <stdio.h>#define EXPORTAPI _far _pascal _export _loadds #define MM 7.092
#define cvt(x) ( (int)((x) * MM) )#define X_START (0 + cvt(10))
#define Y_START (7)
#define FontWidthE 15
#define FontWidthC 30#define PART3X 80
#define PART3Y 504
#define LINE 43
#define PART4X 30
#define PART4Y (PART3Y + LINE * 14 - 10)……
编译后,出错信息::\temp\new\print.c(46) : error C4226: nonstandard extension used : '_far' is an obsolete keyword
d:\temp\new\print.c(46) : error C4226: nonstandard extension used : '_pascal' is an obsolete keyword程序中还用到了_fstrlen,后面编译时会出现warning:
void _far _pascal _loadds print_to(int x,int y,LPSTR ptr)
{
if ( (X_START + x) > 0 )
TextOut(ghPrintDC,X_START + x,Y_START + y, ptr, _fstrlen(ptr));
else
TextOut(ghPrintDC, 1,Y_START + y, ptr, _fstrlen(ptr));}是不是这里用到的_fstrlen是16位函数,它如何改为32位函数呢?
#include <string.h>
#include <stdio.h>#define EXPORTAPI _far _pascal _export _loadds #define MM 7.092
#define cvt(x) ( (int)((x) * MM) )#define X_START (0 + cvt(10))
#define Y_START (7)
#define FontWidthE 15
#define FontWidthC 30#define PART3X 80
#define PART3Y 504
#define LINE 43
#define PART4X 30
#define PART4Y (PART3Y + LINE * 14 - 10)……
编译后,出错信息::\temp\new\print.c(46) : error C4226: nonstandard extension used : '_far' is an obsolete keyword
d:\temp\new\print.c(46) : error C4226: nonstandard extension used : '_pascal' is an obsolete keyword程序中还用到了_fstrlen,后面编译时会出现warning:
void _far _pascal _loadds print_to(int x,int y,LPSTR ptr)
{
if ( (X_START + x) > 0 )
TextOut(ghPrintDC,X_START + x,Y_START + y, ptr, _fstrlen(ptr));
else
TextOut(ghPrintDC, 1,Y_START + y, ptr, _fstrlen(ptr));}是不是这里用到的_fstrlen是16位函数,它如何改为32位函数呢?
strlen()
这一行什么意思?该如何修改?
但是运行的时候出错:
--------------------Configuration: Print - Win32 Debug--------------------
Linking...
Creating library Debug/Print.lib and object Debug/Print.exp
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Print.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
请问_loadds是什么意思呀?int _far _pascal _loadds getgnLineLength( hDC, width )
HDC hDC;
int width;
{
RECT clipBox;
GetClipBox ( hDC, ( LPRECT )&clipBox );
return max( ( ( (clipBox.right - clipBox.left) / width) - 2 ), 0);
}