amobbs.com 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
回复: 69

WIN7下Protel99SE添加库文件的新解决方案,献给还在坚守99的人们

  [复制链接]
(150929271)

打赏出0元收入0元

发表于 2015-9-28 11:41:57 | 显示全部楼层 |阅读模式
本帖最后由 dwj0 于 2015-9-28 12:04 编辑

由于这个版块看的最多了, 就发这个版块了, 如果发错版块, 请版主移位...

首先感谢 wdluo, 使我可以上google网站, 从而找到这个方法.
最后感谢研究出这个方法的朋友

今天用谷歌搜索了一下关键词 "File not recognized", 发现一个国外网站的帖子: http://www.diyaudio.com/forums/p ... -protel-99-a-3.html
其中提到了win7下发生错误的原因和解决方法:
The library dialog tries to concatenate the filename and path of the selected library file to obtain a full path to the library file that you want to add. But, a call to the windows function SHGetPathFromIDListA corrupts the memory where the filename is stored (it puts a zero where the string starts, which, in the null-terminated string world, means that the string is now suddenly empty). The dialog gets confused and doesn't succeed in opening the file.
The call to SHGetPathFromIDListA does not do anything noteworthy, so I replaced all instructions related to that call with NOP instructions. This solved the problem.
So: get yourself a hex editor (I use "HxD", it's free) and edit the "Client99SE.exe" file. Change all bytes from offset 2690E to 26917 (= a total of 10 bytes that need to be changed) to 90.
A NOP instruction is 90 in hexadecimal, hence the change.
用谷歌翻译后的意思是:
该库对话框试图来连接所选库文件的文件名和路径,以获得一个完整路径,您要添加的库文件。但是,调用Windows函数SHGetPathFromIDListA破坏那里的文件名存储在内存中(它把一个零点所在的字符串开始,其中,在空值终止字符串的世界,意味着该字符串是现在突然空)。该对话框会很困惑,并在打开文件不会成功。
以SHGetPathFromIDListA调用不会做任何事情值得一提,所以我换成涉及与NOP指令调用的所有指令。这解决了这个问题。
所以:让自己的十六进制编辑器(我用“HXD”,它是免费的),并编辑了“Client99SE.exe”文件。改变从偏移2690E所有字节到26917(=共10个字节,其需要改变)到90。
NOP指令是十六进制的90,因此改变。

以上是解决PCB中的添加库, 原理图添加库是在下一楼中提到的:
Patch offset 0x25f78 to 0x25f81 inclusive with 0x90 (original bytes were: 50 8b 45 ec 50 e8 7e c1 fd ff ) in Client99SE.exe

我修改后, 实际测试, 发现问题依旧, 于是继续看帖子的后面部分, 终于在帖子的34楼找到方法:
Hi, except applying the patch with values 90 in 2 places as mentioned earlier, there is another step which also must be done in order to be able to load libraries. This is related to default mechanism used in Vista and Win7 that "well known" extensions of files are not shown in the folder. Please note that in Protel you see only the name of library when trying to add it and not full file name with extension, for example it is shown Liteon but must be shown Liteon.ddb in order to correctly load it.

OK, how to solve it........
Option 1:
Update registry for 2 types of extensions *.lib and *.ddb by adding the string AlwaysShowExt for 2 Keys coresponding to them. Save text below to protel.reg file and load it to registry by double click on it.

Code:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.ddb]
@="ProtelDesignFile"

[HKEY_CLASSES_ROOT\.lib]
@="ProtelLibraryFile"

[HKEY_CLASSES_ROOT\ProtelDesignFile]
"AlwaysShowExt"=""

[HKEY_CLASSES_ROOT\ProtelLibraryFile]
"AlwaysShowExt"=""
意思是系统默认是不显示扩展名的, 要将扩展名显示出来才行. 或者将上面一段代码导入注册表可解决这个问题.

经过以上更改, Protel99SE 添加PCB库和SCH库正常

上传修改过的 Client99SE.exe和注册表文件:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(150929234)

打赏出0元收入0元

 楼主| 发表于 2015-9-28 11:42:34 | 显示全部楼层
如果有用, 请留下你的脚印, 谢谢
(150928954)

打赏出0元收入0元

发表于 2015-9-28 11:47:14 | 显示全部楼层
谢谢,又提供了一个新方法。
(150928859)

打赏出0元收入0元

发表于 2015-9-28 11:48:49 | 显示全部楼层
99se用来看看图还可以,画pcb还是用AD吧,版本也不用太高,AD6.9就可以,熟练之后效率会提高很多。
(150928303)

打赏出0元收入0元

发表于 2015-9-28 11:58:05 | 显示全部楼层
多谢了。回去试试看
(150927900)

打赏出0元收入0元

 楼主| 发表于 2015-9-28 12:04:48 | 显示全部楼层
ibichao 发表于 2015-9-28 11:48
99se用来看看图还可以,画pcb还是用AD吧,版本也不用太高,AD6.9就可以,熟练之后效率会提高很多。 ...

只献给还在坚守99的人们, 推荐高版本的请忽略
(150926936)

打赏出0元收入0元

发表于 2015-9-28 12:20:52 | 显示全部楼层
楼主,你这个方法在WIN10上可以用吗?毕竟现在是奔十的时代了先赞一个
(150926840)

打赏出0元收入0元

发表于 2015-9-28 12:22:28 | 显示全部楼层
没用,覆盖.exe文件后提示缺少一个东西。
(150926057)

打赏出0元收入0元

 楼主| 发表于 2015-9-28 12:35:31 | 显示全部楼层
PCBBOY1991 发表于 2015-9-28 12:22
没用,覆盖.exe文件后提示缺少一个东西。

缺少东西可能是我的版本汉化问题, 你直接在你的文件上修改
(150925988)

打赏出0元收入0元

 楼主| 发表于 2015-9-28 12:36:40 | 显示全部楼层
ilikemcu 发表于 2015-9-28 12:20
楼主,你这个方法在WIN10上可以用吗?毕竟现在是奔十的时代了先赞一个 ...

只测试了win7, 32位, 其它的系统请自己测试
而且修改后还能不能用于XP, 也没有测试
(150922139)

打赏出0元收入0元

发表于 2015-9-28 13:40:49 | 显示全部楼层
还真的可以啊,感谢楼主
(150919091)

打赏出0元收入0元

发表于 2015-9-28 14:31:37 | 显示全部楼层
dwj0 发表于 2015-9-28 12:35
缺少东西可能是我的版本汉化问题, 你直接在你的文件上修改

是不是直接双击.reg文件就可以修改注册表啊?我双击了。
我又把99se卸载了然后重装了注册表要不要再修改一次?还是不需要?
(150913730)

打赏出0元收入0元

发表于 2015-9-28 16:00:58 | 显示全部楼层
老破机还在 插屁 中, ,,,上  瘟7   无兴趣啊,,,,
(150913174)

打赏出0元收入0元

发表于 2015-9-28 16:10:14 | 显示全部楼层
我一直用这个

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(150909473)

打赏出0元收入0元

发表于 2015-9-28 17:11:55 | 显示全部楼层
绿色汉化版不行,重新安装后SCH可以添加库,打开PCB出现format %x invalid or incompatible with argument,下载protel.99.se.sp6-patch解决,谢谢共享。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(150908369)

打赏出0元收入0元

发表于 2015-9-28 17:30:19 | 显示全部楼层
多谢分享!老枪使惯了也很顺溜,最主要是任务不复杂,懒得换。
(150907258)

打赏出0元收入0元

发表于 2015-9-28 17:48:50 | 显示全部楼层
win7 64下库完美运行。谢谢了。
有个问题,placementtools工具栏在重新运行后又在老的位置,调整不了.
(150845555)

打赏出0元收入0元

发表于 2015-9-29 10:57:13 | 显示全部楼层
powermeter 发表于 2015-9-28 17:48
win7 64下库完美运行。谢谢了。
有个问题,placementtools工具栏在重新运行后又在老的位置,调整不了. ...

我这有这个问题,工具栏在重新运行后总是自己改会默认位置
(150843867)

打赏出0元收入0元

发表于 2015-9-29 11:25:21 | 显示全部楼层
262619890 发表于 2015-9-29 10:57
我这有这个问题,工具栏在重新运行后总是自己改会默认位置

晚上回去99se卸载后,将windows下99se配置文件全删除掉,再安装试试看
(150841320)

打赏出0元收入0元

发表于 2015-9-29 12:07:48 | 显示全部楼层
牛人牛人牛人牛人牛人
(150833811)

打赏出0元收入0元

发表于 2015-9-29 14:12:57 | 显示全部楼层
powermeter 发表于 2015-9-29 11:25
晚上回去99se卸载后,将windows下99se配置文件全删除掉,再安装试试看

那些配置文件?
(150833692)

打赏出0元收入0元

发表于 2015-9-29 14:14:56 | 显示全部楼层
c:\windows目录下有99se配置文件
(150833035)

打赏出0元收入2元

发表于 2015-9-29 14:25:53 | 显示全部楼层
win7没用过,win8.1 一直添加的好好的,没报什么错的说
(150832323)

打赏出0元收入0元

发表于 2015-9-29 14:37:45 | 显示全部楼层
原来还是有办法可以在win7上用99
(150817706)

打赏出0元收入0元

发表于 2015-9-29 18:41:22 来自手机 | 显示全部楼层
哪个版本的99se
(150817668)

打赏出0元收入0元

发表于 2015-9-29 18:42:00 来自手机 | 显示全部楼层
哪个版本的好用?
(150817181)

打赏出0元收入0元

发表于 2015-9-29 18:50:07 | 显示全部楼层
多谢了。回去试试看
(150813981)

打赏出0元收入0元

发表于 2015-9-29 19:43:27 | 显示全部楼层
262619890 发表于 2015-9-29 10:57
我这有这个问题,工具栏在重新运行后总是自己改会默认位置

解决办法:
1、卸载99se
2、将windows目录下99se配置文件删除
3、在安装99se。

(150812349)

打赏出0元收入0元

发表于 2015-9-29 20:10:39 | 显示全部楼层
再过些年,比这个软件年纪还小的娃都要工作了。
(150811659)

打赏出0元收入0元

发表于 2015-9-29 20:22:09 | 显示全部楼层
谢谢分享
(150777803)

打赏出0元收入0元

发表于 2015-9-30 05:46:25 来自手机 | 显示全部楼层
好吧,我承认我也是懒人,不愿学习新知识,还在用99
(150775134)

打赏出0元收入0元

发表于 2015-9-30 06:30:54 | 显示全部楼层
这个要顶
(150774580)

打赏出0元收入0元

发表于 2015-9-30 06:40:08 | 显示全部楼层

请教:高速光耦隔离有什么缺点吗?


这个软件好像有个问题,就是库似乎有全局性,在一个DDB文件中添加/删除库文件之后,别的DDB文件中也会被改动。
(150771558)

打赏出0元收入0元

发表于 2015-9-30 07:30:30 | 显示全部楼层
学习,谢谢!!!
(150770365)

打赏出0元收入0元

发表于 2015-9-30 07:50:23 来自手机 | 显示全部楼层
等下试试效果,如果可行的话就太好了
(150768086)

打赏出0元收入0元

发表于 2015-9-30 08:28:22 来自手机 | 显示全部楼层
AD2015用了一年了
(150766618)

打赏出0元收入0元

发表于 2015-9-30 08:52:50 | 显示全部楼层
路过友情帮顶。
(150765383)

打赏出0元收入0元

发表于 2015-9-30 09:13:25 | 显示全部楼层
换完了,目前为止完美运行
(150683072)

打赏出0元收入0元

发表于 2015-10-1 08:05:16 | 显示全部楼层
非常好,在win7@64位系统下正常使用,再也不用virtual pc了。
(150677858)

打赏出0元收入0元

发表于 2015-10-1 09:32:10 | 显示全部楼层
试下这个方法
(150500174)

打赏出0元收入0元

发表于 2015-10-3 10:53:34 | 显示全部楼层
谢谢,学习!!!
(150471072)

打赏出0元收入0元

发表于 2015-10-3 18:58:36 | 显示全部楼层
在慢慢转到AD上,99还是有点Old!
(150364086)

打赏出0元收入0元

发表于 2015-10-5 00:41:42 来自手机 | 显示全部楼层
学习中  不过我还是觉得ad好用
(150330271)

打赏出0元收入0元

发表于 2015-10-5 10:05:17 | 显示全部楼层
支持下,
(150307233)

打赏出0元收入0元

发表于 2015-10-5 16:29:15 | 显示全部楼层
WIN7 64位能用!!谢谢!!
(150290769)

打赏出0元收入0元

发表于 2015-10-5 21:03:39 来自手机 | 显示全部楼层
金**的汉化的99se可以在win7加载库吗?
(150243301)

打赏出0元收入0元

发表于 2015-10-6 10:14:47 | 显示全部楼层
我电脑是win10操作系统,能否上传一个99se版本的上来吗?
(150242390)

打赏出0元收入0元

发表于 2015-10-6 10:29:58 | 显示全部楼层
安装了,可以导入了,还没有实际画板子了
(150241626)

打赏出0元收入0元

发表于 2015-10-6 10:42:42 | 显示全部楼层
试试看行不     
(150228786)

打赏出0元收入0元

发表于 2015-10-6 14:16:42 来自手机 | 显示全部楼层
99的确很经典,画100个元器件以下的pcb毫无压力
(150222447)

打赏出0元收入0元

发表于 2015-10-6 16:02:21 | 显示全部楼层
这个确实非常好,苦于没发使用99,所以现在都没装WIN8
(150148476)

打赏出0元收入0元

发表于 2015-10-7 12:35:12 | 显示全部楼层
太好了,我也懒,一直用99se,
不愿意改的原因是,99se部分诀窍在AD中一直没有找到,我用99se画过6层板9千500个零件的板子,AD太消耗系统资源,这样一个板子用AD打开很费时间,运行DRC比99还慢。
(150148275)

打赏出0元收入0元

发表于 2015-10-7 12:38:33 | 显示全部楼层
在画高速板的时候,99se彻底的落后了,比如画简单USB的差分线,几乎是不可能的,其他的等长线就更不可能。
(150140602)

打赏出0元收入0元

发表于 2015-10-7 14:46:26 | 显示全部楼层
还是升级一下吧,SE99也太落后了
(149979861)

打赏出0元收入0元

发表于 2015-10-9 11:25:27 | 显示全部楼层
试了下  确实是可以的。多谢楼主分享
(149976422)

打赏出0元收入0元

发表于 2015-10-9 12:22:46 | 显示全部楼层
这个真心有用啊
(147605909)

打赏出0元收入0元

发表于 2015-11-5 22:51:19 | 显示全部楼层
果然好用,非常感谢!
(143044854)

打赏出0元收入0元

发表于 2015-12-28 17:48:54 来自手机 | 显示全部楼层
不收藏不行啊
(142361032)

打赏出0元收入0元

发表于 2016-1-5 15:45:56 | 显示全部楼层
试了在win7 64位可用。
(142360971)

打赏出0元收入0元

发表于 2016-1-5 15:46:57 | 显示全部楼层
做的很不错,已经可以像在XP上用99一样了。就是看到汉化很不爽,能不要汉化吗?
(142351786)

打赏出0元收入0元

发表于 2016-1-5 18:20:02 | 显示全部楼层
一直还在用99,谢谢楼主,试试.
(141478416)

打赏出0元收入0元

发表于 2016-1-15 20:56:12 | 显示全部楼层
刚刚测试,楼主的文件,可以完美运行在WIN10-32bit下,只是第一次运行,会提示有问题,不运行,选择仍要运行,即可,下次再开启,就不会出现这个画面了,运行时,直接可以像XP一样添加器件库。

谢谢楼主
(86208838)

打赏出0元收入0元

发表于 2017-10-16 13:35:50 | 显示全部楼层
楼主厉害,完美解决win10 64bit+99SE问题
之前谷歌百度上所有方法都试了PCB库就是有问题,现在好了,多谢!
(85451086)

打赏出0元收入0元

发表于 2017-10-25 08:05:02 | 显示全部楼层
没过几天又不行了,于是谷歌搜“format '%X' invalid or incompatible with argumePCB”

找到了以下内容,试用一阵没异常
https://bbs.pediy.com/thread-149241.htm
(25254839)

打赏出0元收入0元

发表于 2019-9-22 01:15:49 | 显示全部楼层
谢谢,又提供了一个新方法。
(25110210)

打赏出0元收入0元

发表于 2019-9-23 17:26:18 | 显示全部楼层
以后可能需要用,先mark.
(25097111)

打赏出0元收入0元

发表于 2019-9-23 21:04:37 来自手机 | 显示全部楼层
标记一下
回帖提示: 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-7-10 08:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表