作为驱动开发的菜鸟级小菜鸟,最近一直在研究虚拟打印,任务在一步步往前推进的同时问题也在一个个涌现。我是以DDK中的例程genprint为原型来研究我要实现的功能的,想要通过对这个程序的修改来实现虚拟打印的功能。我的思路是想要先找到这个函数的入口,然后像VC中调试win32控制台应用程序那样通过单步执行来了解程序执行的顺序,可是在VC中调试时用DriverStudio在VC中的调试工具栏
编译的时候可以正常生成genprint.dll,但是用VC中的调试工具栏
编译却会报错,错误信息如下:
--------------------Configuration: vprproc - Win32 Free--------------------
Linking with DDK linker...
Creating library objfre\i386\vprproc.lib and object objfre\i386\vprproc.exp
objfre\i386\vprproc.dll : warning LNK4086: entrypoint '_mainCRTStartup' is not __stdcall with 12 bytes of arguments; image may not run
LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
objfre\i386\vprproc.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
vprproc.dll - 2 error(s), 1 warning(s)
针对这个错误我一直在网上寻找答案,有很多都说是配置的问题,我是按照网上给出的VC+DDK+DriverStudio平台配置的说明配置的环境,如果是这方面的原因那应该怎么修改配置环境呢?
还有一种答案说是DLL工程不能用VC环境进行调试,如果是这种的情况的话我应该怎么去查看程序的入口和执行的过程呢?
还有一个附加问题:
我在编译的时候编译模式一直都是Win32 Free模式,我知道ddk编译中分为free模式和check模式,这两种模式应该可以自由设置啊,可是我却设置不成功,不知道是怎么样设置的,这两种模式的区别又是什么,应该在什么场景下使用呢?
希望各位前辈多多指教,希望给菜鸟指点一下方向。
------解决方案--------------------
楼主 我也正在研究这个呀 不知道你弄得怎么样了 我也研究到这步了 感觉建立这个项目好像怎么也编译不能通过 有兴趣和你一起来讨论研究 我的 QQ 348482162
------解决方案--------------------
直接用DDK自带的编译就好了
VC+ddk+DriverStduio3.2的环境 是指你新建的工程 然后可以通过VC调用DDK的编译工具编译
对于DDK自带的例子 都没有考虑使用VC工具的情况
如何使用DDK自带的编译工具
GOOGLE下寒江独钓啊 张帆的WINDOWS驱动开发技术详解
这些PDF都有详细的步骤