c语言LNK2002错误,Windows 7 使用 VS.NET 2003 时遇到“LNK1201: 写入程序数据库时出错”的解决方案...

评论

# 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值