【软件编译】vs2013下编译notepad++源码

https://blog.51cto.com/12756634/1955628

1 下载notepad++源码

    登录notepad++官网https://notepad-plus-plus.org/

wKioL1mNqRHTIDDSAACs1SZoP7A585.png

2 对scintilla进行编译,获得SciLexer.dll文件
    具体编译方法请自行谷歌,本人赶时间,直接从已安装的notepad++中复制了一份。

    problem 1:如果没有这个文件会在一开始报错

        wKiom1mNq7LRtkWrAAAsoH_N3lY526.png

    problem 2:如果这个文件是自己编译获得的,则这个文件没有签名,也会报错。

wKioL1mNuiiD-posAAAVvy3D0_Y456.png

        solution 2-1:只需要将验证签名的函数去掉或强行通过验证就可以了。(通过在整个解决方案中搜索“Authenticode check failed”定位到签名验证部分的代码)

wKiom1mNvAfQQvmqAAAmz_sqT_A177.png

        solution 2-2:像我一样直接copy一个正版的过来

        maybe  solution 2-3:给自己的scilexer.dll加上签名证书,这个只是我的想法,没有进行验证

3 编译notepad++源码
   3.1  打开PowerEditor\visual.net,使用vs2013打开notepadPlus.vcxproj(notepadPlus.vs2015.vcxproj是vs2015的工程)

   3.2  修改工程属性,“将警告视为错误”改为“否”。否则编译时会出错。

wKioL1mNrz7C5jBMAAAcDEiiAFM372.png

   3.3  解决方案环境需要配置为与scilexer.dll一致,否在在使用loadlibrary加载时会出现193号错误
(因为loadlibrary返回NULL,只知道是加载失败,但不知道是为什么,后来使用getlasterror后获得错误号193;在网上一查,193说明不是合法的win32程序,因此才想到我用的dll是x64的,修改了环境就可以成功加载了)。

    错误提示如下:

wKiom1mNuo7TwLCuAAASnhdMVgE156.png

    解决方案配置:(因为这个问题消耗了大半天的时间。。。)

wKiom1mNvHXhQwzQAAAxFS-4bqw192.png

猜你喜欢

转载自blog.csdn.net/xinpo66/article/details/89402691