那位用过unitools开发printer minidriver及编译makefile?

xielm 2000-08-30 11:23:00
1。请简单讲讲。
2。我现在无法把98DDK和vc5连接起来,总是环境变量不对。应该怎样安装。
3。编译makefile文件中的一些环境变量变量总是不对。应该如何设定。
...全文
412 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmxingvc 2001-07-14
  • 打赏
  • 举报
回复
编译好的bitmap.drv安装后打印时报错,是代码错误吗?
tchaikov 2000-09-01
  • 打赏
  • 举报
回复
我把我这里的例子给你发过去试试.
xielm 2000-09-01
  • 打赏
  • 举报
回复
终于可以编译了,感谢三位朋友的帮助。
tchaikov介绍了32位DDK的安装方法。
hhq和UltraUnAsm介绍了Legacy printing driver的安装和要点。
以后看到此文的朋友切记:不论16,32位都要注意环境变量的设置,16位修改master.mk很重要。

再次感谢三位。





UltraUnAsm 2000-09-01
  • 打赏
  • 举报
回复
我的一点浅见:
98DDK应该有附带一份'c:\98ddk\bin\win98\bin16\rc.exe'。我看到你似乎在C盘F盘都安装过98DDK,是否出错于此,可再分析。
98DDK不附带16bit的C编译器,因此有的范例的确无法build(BITMAP应该属于此类)。如果你有16bitC编译器的话。修改C:98ddk\inc下的master.mk
# C16_ROOT should point to the root of your 16-Bit tools directory.
C16_ROOT=
为(举例)
C16_TOOLS=C:\MSVC

最后说明一下:尽量不要用 C:\98ddk 而要用 $(BASEDIR)。
hhq 2000-09-01
  • 打赏
  • 举报
回复
To xielm:安装次序可参考ddk中的安装文档,大致顺序是先安装sdk,vc,masm,最后装ddk。
如果不装sdk,要手工加入环境变量(MSTOOLS = C:\MSTOOLS)。
xielm 2000-09-01
  • 打赏
  • 举报
回复
TO tchaikov,你给我的是98ddk中的例子,你处编译可通过吗?另外,你的机器是95,98,NT,2000?

TO hhq,安装有次序吗?环境变量?

buildchk.log
---------------------------------------------
BUILD: Computing Include file dependencies:
BUILD: c:\vc50\include\exdisp.odl(31): c:\vc50\include\exdisp.odl - invalid include statement: importlib(STDOLE_TLB);
BUILD: Examining c:\98ddk\src\printer\bitmap directory for files to compile.
BUILD: Unable to save the dependency database: \nt\build.dat
Building generated files in c:\98ddk\src\printer\bitmap ********************
'nmake.exe /c BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 PASS0ONLY=1 386=1'
c:\98DDK\bin\win98\bin16\rc.exe -r -I. -fo obj\i386\BITMAP.res BITMAP.RC
Microsoft (R) Windows Resource Compiler Version 4.00
Copyright (C) Microsoft Corp. 1985-1993. All rights reserved.


RC : fatal error RW1009: Error Creating obj\i386\BITMAP.res
set ML=-DIS_16 -nologo -W2 -Zd -c -Cx -DMASM6
ml -Foobj\i386\libinit.obj libinit.asm
set CL=-nologo -u -c -Asnw -PLM -G2sw -W3 -Od -Zipe -DDEBUG -DNODEVSTRETCHBLT
cl -Foobj\i386\minidriv.obj minidriv.c
\bin\cl -Foobj\i386\minidriv.obj ..\common\minidriv.c
NMAKE : U1081: '\bin\cl' : program not found
Stop.
hhq 2000-09-01
  • 打赏
  • 举报
回复
xielm: 编译Win9x的打印驱动就是要用16位的编译器,我建议你赶快装vc1.5,再装一Masm6.11,(Masm6.0也行,我试过)。
tchaikov 2000-09-01
  • 打赏
  • 举报
回复
我是一台普通的PIII兼容机,安装过程是先装VC5,再装98DDK。
能不能把出错信息说一下。把 buildchk.log 整个文件贴出来。
xielm 2000-09-01
  • 打赏
  • 举报
回复
我处是所有c文件无法编译,所以我怀疑是否vc5无法编译legacy printer driver ,可能要用vc1.5等等
xielm 2000-09-01
  • 打赏
  • 举报
回复
tchaikov,能否讲讲你的系统配置和安装过程。
xielm 2000-09-01
  • 打赏
  • 举报
回复
謝謝, 打印機的unidriver是16位的DLL,minidriver是否不能用VC5來開發?
xielm 2000-08-31
  • 打赏
  • 举报
回复
用bulid -cZ 解決了.res的問題。
ddk98中的打印機的例子是16位還是32位程序?
xielm 2000-08-31
  • 打赏
  • 举报
回复
目录建好了,可错误依然。build 命令也没成功。
难道DDK环境如此难以建立?是不是和我机器中有VC6.0有关?
不过我试过移除VC6.0,再装vc5.0,再装98DDK,也是这个样子。
tchaikov 2000-08-30
  • 打赏
  • 举报
回复
你能不能手工把 obj\i386目录建好,再在dos下执行
build -cef
试试。
xielm 2000-08-30
  • 打赏
  • 举报
回复
我试了一下ddk的F:\98DDK\src\printer\bitmap,结果还有如下错误。

--------------------Configuration: Makefile - Win32 Debug--------------------
Microsoft (R) Program Maintenance Utility Version 1.62.7022
Copyright (C) Microsoft Corp 1988-1997. All rights reserved.
f:\98ddk\bin\win98\bin16\rc.exe -r -I. -fo obj\i386\BITMAP.res BITMAP.RC
Microsoft (R) Windows Resource Compiler Version 4.00
Copyright (C) Microsoft Corp. 1985-1993. All rights reserved.
RC : fatal error RW1009: Error Creating obj\i386\BITMAP.res
NMAKE : fatal error U1077: 'f:\98ddk\bin\win98\bin16\rc.exe' : return code '0x1'
Stop.
Error executing NMAKE.

Makefile.exe - 2 error(s), 0 warning(s)
tchaikov 2000-08-30
  • 打赏
  • 举报
回复
打印驱动主要是GDI的接口,既然打印机支持8点单密度打印,你是不是找个老掉牙的打印机类型驱动再试试,不要急着动手,还有,可以到

http://ftp.xjtu.edu.cn/Comehere/soft/Develop/Numega_DriverStudio/1.5/

去下载 DriverStudio, 据说要方便的多。
下面是你要的文件:

*********** Autoexec.bat ************
@ECHO OFF
call c:\vc50\bin\vcvars32.bat
call c:\98ddk\bin\setenv c:\98ddk checked
set ddkroot=c:\98ddk
rem c:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE
rem c:\program files\numega\softice95\WINICE.EXE
rem SET PATH=C:\WINDOWS\SYSTEM;%PATH%


********* c:\vc50\bin\vcvars32.bat ***********
@echo off
rem
rem Root of Visual Developer Studio installed files.
rem
set MSDevDir=C:\Progra~1\DevStudio\SharedIDE

rem
rem Root of Visual C++ installed files.
rem
set MSVCDir=c:\vc50

rem
rem Root of Visual C++ files on cd-rom.
rem Remove "set vcsource=" if you don't want include cdrom in Visual C++ environment.
rem
rem set vcsource=D:\VC50
set vcsource=
rem
rem VcOsDir is used to help create either a Windows 95 or Windows NT specific path.
rem
set VcOsDir=WIN95
if "%OS%" == "Windows_NT" set VcOsDir=WINNT

rem
echo Setting environment for using Microsoft Visual C++ tools.
rem
if "%vcsource%" == "" goto main
rem
rem Include cdrom files in environment.
rem
if "%OS%" == "Windows_NT" set PATH=%PATH%;%vcsource%\VC\BIN;%vcsource%\VC\BIN\%VcOsDir%
if "%OS%" == "" set PATH=%PATH%;"%vcsource%\VC\BIN";"%vcsource%\VC\BIN\%VcOsDir%"
set INCLUDE=%INCLUDE%;%vcsource%\VC\INCLUDE;%vcsource%\VC\MFC\INCLUDE;%vcsource%\VC\ATL\INCLUDE
set LIB=%LIB%;%vcsource%\VC\LIB;%vcsource%\VC\MFC\LIB
set vcsource=

:main
if "%OS%" == "Windows_NT" set PATH=%MSDevDir%\BIN;%MSVCDir%\BIN;%MSVCDir%\BIN\%VcOsDir%;%PATH%
if "%OS%" == "" set PATH="%MSDevDir%\BIN;%MSVCDir%\BIN";"%MSVCDir%\BIN\%VcOsDir%";%PATH%
set INCLUDE=%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;%MSVCDir%\ATL\INCLUDE;%INCLUDE%
set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;%LIB%

set VcOsDir=



************* c:\98ddk\bin\setenv.bat ************
@echo off

if "%1"=="" goto usage

rem Check for new or updated install of MSVC
%1\bin\vccheck /p %1 /e
call %1\bin\dvol

rem Set build environment from msvc

if NOT EXIST %1\bin\ddkvars.bat goto devdir
call %1\bin\ddkvars.bat
if "%MSVCDIR%"=="" set MSVCDIR=%MSDEVDIR%
goto testbasedir

:devdir
if "%MSDEVDIR%"=="" goto no_msvc40
call %MSDEVDIR%\bin\vcvars32 x86
if "%MSVCDIR%"=="" set MSVCDIR=%MSDEVDIR%

:testbasedir

if "%BASEDIR%"=="" goto setbasedir
if NOT "%BASEDIR%"=="%1" goto setbasedir

set Path=%BASEDIR%\bin;%path%
set Lib=%BASEDIR%\lib;%lib%
set Include=%BASEDIR%\inc;%BASEDIR%\inc\win98;%include%

if "%DDKBUILDENV%"=="" goto setenv
if NOT "%DDKBUILDENV%"=="%2" goto envtest
goto done

:setbasedir

rem set BASEDIR to ddk directory and set path to point to ddk binaries

set BASEDIR=%1
set Path=%1\bin;%1\bin\win98;%path%
set Lib=%1\lib;%lib%
set Include=%1\inc;%1\inc\win98;%include%

:setenv


set NTMAKEENV=%BASEDIR%\inc
set BUILD_MAKE_PROGRAM=nmake.exe
set BUILD_DEFAULT=-ei -nmake -i

if "%tmp%"=="" set tmp=
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto i386
set PROCESSOR_ARCHITECTURE=x86
goto i386

@rem if "%PROCESSOR_ARCHITECTURE%"=="" goto cpuerror
@rem if "%PROCESSOR_ARCHITECTURE%"=="ALPHA" goto alpha
@rem if "%PROCESSOR_ARCHITECTURE%"=="MIPS" goto mips
@rem if "%PROCESSOR_ARCHITECTURE%"=="x86" goto i386
@rem if "%PROCESSOR_ARCHITECTURE%"=="PPC" goto ppc

@rem goto cpuerror

:alpha

if "%Cpu%" == "" set Cpu=ALPHA
set BUILD_DEFAULT_TARGETS=-alpha
set ALPHA=1
set JENSEN=1
set NTALPHADEFAULT=1

goto envtest

:ppc

if "%Cpu%" == "" set Cpu=PPC
set BUILD_DEFAULT_TARGETS=-ppc
set PPC=1
set _PPC_=1
set NTPPCDEFAULT=1

goto envtest

:mips

if "%Cpu%" == "" set Cpu=MIPS
set BUILD_DEFAULT_TARGETS=-mips
set MIPS_R4000=1
set _JAZZIDW=1
set NTMIPSDEFAULT=1

goto envtest

:i386

if "%Cpu%" == "" set Cpu=i386
set BUILD_DEFAULT_TARGETS=-386

:envtest

if "%2"=="" goto free
if "%2"=="free" goto free
if "%2"=="FREE" goto free
if "%2"=="checked" goto checked
if "%2"=="CHECKED" goto checked
goto usage

:free

rem set up an NT free build environment

set DDKBUILDENV=free
set C_DEFINES=-D_IDWBUILD
set NTDBGFILES=1
set NTDEBUG=
set NTDEBUGTYPE=
set MSC_OPTIMIZATION=

goto done

:checked

rem set up an NT checked build environment

set DDKBUILDENV=checked
set C_DEFINES=-D_IDWBUILD -DRDRDBG -DSRVDBG
set NTDBGFILES=
set NTDEBUG=ntsd
set NTDEBUGTYPE=both
set MSC_OPTIMIZATION=/Od /Oi

:done

set _OBJ_DIR=obj
set NEW_CRTS=1
IF "%_NTROOT%"=="" set _NTROOT=%DDKPATH%
IF "%_NTDRIVE%"=="" set _NTDRIVE=%DDKDRIVE%
%1\bin\vccheck /p %1 /d

doskey /echo:off /bufsize:6144 /file:%BASEDIR%\bin\ddktree.mac
doskey /echo:off /file:%BASEDIR%\bin\generic.mac
%BASEDIR%\bin\MkCDir %BASEDIR%
if exist %BASEDIR%\bin\ChngeDir.bat call %BASEDIR%\bin\ChngeDir.bat
goto end

:cpuerror

echo.
echo Error: PROCESSOR_ARCHITECTURE environment variable not recognized.
echo.
echo.

goto end

:no_msvc40
@echo Error: MSDEVDIR environment variable not recognized.
@echo MS VC++ 4.2, 5.0 or 6.0 must be installed.

goto end

:usage

echo.
echo usage: setenv ^<directory^> [free^|^checked]
echo.
echo Example: setenv d:\ddk checked set checked environment
echo Example: setenv d:\ddk defaults to free environment
echo.
echo.


:end
xielm 2000-08-30
  • 打赏
  • 举报
回复
我改是改了,可还是过不去。!INCLUDE $(BASEDIR)\inc\master.mk

能不能给我一份你处好的。
ddk目录下的:ddkvars.bat setenv.bat
vc 目录下的:Vcvars32.bat
sam_sha@21cn.com or sam_sha@sina.com
我是按照说明先装VC5,再装98DDK的。

上次问你的问题,朋友的小打印机不能全兼容LQ1600,只是它的子集。最关键的图形打印 ESC * 没有。但它支持一种8点单密度打印。请问,我们用minidriver方法能解决吗?

还有,我对windows打印驱动的理解是:
DC-->BMP DATA -->控制序列-->并口。对吗?





tchaikov 2000-08-30
  • 打赏
  • 举报
回复
to xielm:
请检查一下 vc5的bin 目录中的 vcvars32.bat文件,
开始部分应该是

@echo off
rem
rem Root of Visual Developer Studio installed files.
rem
rem 下面这句话改了吗?
set MSDevDir=C:\Progra~1\DevStudio\SharedIDE
rem 不要写成下面的样子 ,set 中不能有空格
rem set MSDevDir=C:\Program files\DevStudio\SharedIDE


不要改动 ddk 提供的 makefile 文件。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧