评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-02-13 09:56
zwp
感谢啊,这个问题困扰好久了。
不过刚刚新建个项目,又没有出现上述问题,待重现的时候一定要试试。
不过如果一个项目一个项目地添加link pre,太麻烦了,我直接放在外部工具里,应该也有效。
回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-02-13 10:16
杨粼波
哦?这样的么?
我之前用Windows 7 32位的时候,有的项目会有问题,有的不会,很是奇怪,我估计可能是权限的问题还是怎样的。
但是,我前几天换到了64位的操作系统以后,就有问题了,奇了个怪。说实话,让我每个项目都这样做,我也很烦。
但是,我现在每调试一次,就要关闭一次工程,这很烦人的。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-02-23 12:33
zwp
后来发现还是不行,没法确定工程生成的pdb文件名以及位置。除非所有的工程都是按照默认位置和名字来存放pdb文件。
于是,只有下了个GUI版本的procexp,手动强制关闭devenv.exe相关工程对应的pdb文件句柄。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-02-23 12:35
zwp
@杨粼波
要么自己为每个工程写一个prelink事件,通过命令行强制关闭被打开的pdb文件句柄,
要么在调试后链接前用procexp强制关闭下pdb的文件句柄。
回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案[未登录]
2011-02-23 20:59
杨粼波
都挺烦人的。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-03-12 16:44
兔子
freepdb.cmd的代码里面有问题。我修改了一下。现在可以了。等我传上来,这问题困扰我好久了 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-03-12 17:09
兔子
rem 在预生成事件里输入 比如 c:\lnk1201\freepdb.cmd ServerD
rem ServerD为你的被锁住的PDB名字,一般来说是exe名字而不是工程名。。。请注意
rem 不过你要是没修改输出exe名字。直接就是工程名也是对的
@echo off
if "%1"=="" (
echo Usage: freepdb filename
echo This will free all handles of VS2003 on filename.pdb
echo Requires the Handle utility from Windows Sysinternals
goto :eof
)
cd /d "%~dp0"
for /f "tokens=2 skip=5 delims=:" %%a in ('handle -p devenv.exe "%1.pdb"') do (
rem 寻找pid
for /f "tokens=1-2" %%b in ("%%a") do (
for /f "tokens=3 skip=5 delims=:" %%d in ('handle -p devenv.exe "%1.pdb"') do (
rem 寻找FileID
for /f "tokens=1-2" %%e in ("%%d") do (
rem 执行关闭命令
rem 此时%%b为pid
rem 此时%%f为fileid
handle -c %%f -y -p %%b %1 > NULL
)
)
)
)
exit /b 0
回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-03-12 17:11
兔子
今天闲着蛋疼。。。总算吧这个问题解决了。。。。。。。。。。。。。
网上所有的freepdb.cmd都有问题 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案[未登录]
2011-03-13 21:55
杨粼波
==!为啥蛋疼呢? 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-04-12 16:49
杨粼波
根据我的观察,每调试一次,pdb的句柄就增加一次,调试多次的话,此解决方案无效,纵使关闭掉了IDE打开的文件句柄,文件却无法做写操作。用VS2003在Windows7上面调试就是一个巨大的悲剧。
最好的解决方案是:调试一次,关闭一次IDE。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2011-10-17 16:22
烟圈
兔子的版本好使,不過啟動的時候注意要 管理員身份打開 vs 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2012-01-12 10:27
星爷
不想以管理员模式运行,兔子的版本无效。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案[未登录]
2012-01-14 21:08
杨粼波
我这里加载了很多dll,dll会有pdb文件,好像不会卸载。
擦,我现在是相当相当的痛苦!
非常的想把VS升级上去了。 回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2012-10-19 16:07
李汉文
我今天下载后用了freepdb,可是我的是一下要打开同样的应用程序几个用来生成不同的程序的,然后按照上面说的方法试了以后,只打开一个还可以,再打开同样的文件的时候就出现了问题,前面打开的程序消失了。。。是不是就应该freepdb的原因,把我前面那个程序生成的PDB给删了??急求解哦@兔子
回复 更多评论
# re: Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案
2014-04-22 14:45
9527