我要修改名为xdma_rw.exe文件的源工程的一个参数,并重新生成这个.exe文件,于是我用visual studio打开了xdma_rw.exe的源工程: (网上说修改这个程序需要VS+WDK的驱动开发环境,虽然我不懂为什么,但是都安装好了)
修改参数结束后,我就点【开始执行(不调试)】运行项目,但是有报错。
报错内容:
“xdma_rw.exe”(Win32): 已加载“C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\build\x64\bin\xdma_rw.exe”。已加载符号。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\ntdll.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\kernel32.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\KernelBase.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\setupapi.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\msvcrt.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\ucrtbase.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\vcruntime140.dll”。
线程 0x50d8 已退出,返回值为 0 (0x0)。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\devobj.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\cfgmgr32.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\cfgmgr32.dll”。
“xdma_rw.exe”(Win32): 已卸载“C:\Windows\System32\cfgmgr32.dll”
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\cfgmgr32.dll”。
“xdma_rw.exe”(Win32): 已卸载“C:\Windows\System32\cfgmgr32.dll”
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\wintrust.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\rpcrt4.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\crypt32.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\msasn1.dll”。
“xdma_rw.exe”(Win32): 已加载“C:\Windows\System32\kernel.appcore.dll”。
线程 0x1d58 已退出,返回值为 -1 (0xffffffff)。
线程 0x42c8 已退出,返回值为 -1 (0xffffffff)。
线程 0x10fc 已退出,返回值为 -1 (0xffffffff)。
程序“[8152] xdma_rw.exe”已退出,返回值为 -1 (0xffffffff)。
针对错误信息,我进行了搜索,网上讲了两个办法,分别如下:
第一个办法:
第一个办法失败了
第二个办法:
这是别人的截图。我找到了我的properties文件夹,和人家的路径不一样,而且有好几个,打开后,里面都没有licenses.licx文件,所以这个办法也失败了。
源工程毕竟是官方提供的能用的,正常来说没有错误,于是我索性不管报错,直接点“生成——重新生成解决方案”,以生成.exe文件(网上讲的)。结果是仍然存在错误。
已启动重新生成…
1>------ 已启动全部重新生成: 项目: libxdma, 配置: Win10_Release x64 ------
2>------ 已启动全部重新生成: 项目: xdma_rw, 配置: Debug x64 ------
2>Building 'xdma_rw' with toolset 'WindowsApplicationForDrivers10.0' and the 'Desktop' target platform.
1>Building 'libxdma' with toolset 'WindowsKernelModeDriver10.0' and the 'Universal' target platform.
2>xdma_rw.c
1>device.c
1>dma_engine.c
1>interrupt.c
1>正在生成代码...
1>libxdma.vcxproj -> C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\build\x64\libxdma\Win10_Release\xdma.lib
3>------ 已启动全部重新生成: 项目: XDMA_Driver, 配置: Win10_Release x64 ------
3>Building 'XDMA_Driver' with toolset 'WindowsKernelModeDriver10.0' and the 'Universal' target platform.
3>Stamping C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\sys\..\build_tmp\XDMA_Driver\x64\Win10_Release\XDMA.inf
3>Stamping [Version] section with DriverVer=02/01/2023,18.42.42.785
2>xdma_rw.vcxproj -> C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\build\x64\bin\xdma_rw.exe
3>C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\sys\XDMA.inx(19-19): warning 1324: [Version] section should specify PnpLockdown=1.
2>"Copying binary data file to output directory..."
3>driver.c
2>已复制 1 个文件。
3>file_io.c
3>正在运行 C/C++ 代码分析...
3>正在生成代码...
3>XDMA_Driver.vcxproj -> C:\Users\10422\Desktop\PCIE\Windows驱动源文件\xdma_driver_win_src_2017_4\build\x64\XDMA_Driver\Win10_Release\XDMA.sys
3>SIGNTASK : SignTool error : No file digest algorithm specified. Please specify the digest algorithm with the /fd flag. Using /fd SHA256 is recommended and more secure than SHA1. Calling signtool with /fd sha1 is equivalent to the previous behavior. In order to select the hash algorithm used in the signing certificate's signature, use the /fd certHash option.
3>
3>已完成生成项目“XDMA_Driver.vcxproj”的操作 - 失败。
3>已完成生成项目“XDMA_Driver.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 2 个,失败 1 个,跳过 0 个 ==========
重新生成解决方案后,生成了build和build_tmp两个文件夹,打开build后,找到了新的xdma_rw.exe。
经测试,这个新的.exe文件和之前没有区别,说明没有修改成功。
我中间一定有操作错误或疏漏的地方,上网查了很多内容都未能解决问题,恳请老师指导一下如何能生成新的xdma_rw.exe,十分感谢!