forked from go/golangs_learn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.8 KiB
91 lines
3.8 KiB
4 years ago
|
# walik 库
|
||
|
>
|
||
|
> 主要的 [API](https://godoc.org/github.com/lxn/walk)
|
||
|
>
|
||
|
>
|
||
|
## 注意事项
|
||
|
* 代码应包含文件
|
||
|
> 正常的 “.go” 文件、 “.manifest” 和由 rsrc 生成的 “.syso” 文件,必须保证文件存在,都在程序无法正常运行和调试。
|
||
|
>
|
||
|
>
|
||
|
> 否则会报:TTM_ADDTOOL failed 等异常!
|
||
|
>
|
||
|
> 生成 “.syso” 文件的命令:rsrc -manifest main.manifest -ico main.ico -o main.syso
|
||
|
>
|
||
|
> 其中 rsrc 的应用目录应配置到【系统环境变量】里。
|
||
|
![配置详情](img/1.png)
|
||
|
>
|
||
|
* 开发测试文件配置应该为
|
||
|
![配置详情](img/2.png)
|
||
|
>
|
||
|
# 包结构划分
|
||
|
|
||
|
> 功能划分多个子包
|
||
|
* **declarative**:
|
||
|
* **examples/actions**:
|
||
|
* **examples/clipboard**:
|
||
|
* **examples/databinding**:
|
||
|
* **examples/drawing**:
|
||
|
* **examples/dropfiles**:
|
||
|
* **examples/externalwidgets**:
|
||
|
* **examples/filebrowser**:
|
||
|
* **examples/gradientcomposite**:
|
||
|
* **examples/imageicon**:
|
||
|
* **examples/imageview**:
|
||
|
* **examples/imageviewer**:
|
||
|
* **examples/linklabel**:
|
||
|
* **examples/listbox**:
|
||
|
* **examples/listbox_ownerdrawing**:
|
||
|
* **examples/logview**:
|
||
|
* **examples/multiplepages**:
|
||
|
* **examples/notifyicon**:
|
||
|
* **examples/progressindicator**:
|
||
|
* **examples/radiobutton**:
|
||
|
* **examples/settings**:
|
||
|
* **examples/slider**:
|
||
|
* **examples/statusbar**:此示例演示了状态栏,包括连接到主窗口底部的尺寸夹。
|
||
|
* **examples/tableview**:
|
||
|
* **examples/webview**:
|
||
|
* **examples/webview_events**:
|
||
|
* **tools/ui2walk**:
|
||
|
|
||
|
# 什么是manifest
|
||
|
|
||
|
* 介绍:
|
||
|
> Manifests是伴随并描述并行程序集或隔离的应用程序的XML文件。
|
||
|
> Manifests通过装配的assemblyIdentity元素唯一标识装配。
|
||
|
> 它们包含用于绑定和激活的信息,例如COM类,接口和类型库,这些信息通常存储在注册表中。
|
||
|
> Manifests还指定了组成程序集的文件,如果程序集作者希望对它们进行版本控制,则Manifests可以包括Windows类。并排程序集未在系统上注册,但可用于系统和清单文件中指定依赖项的应用程序和其他程序集。
|
||
|
|
||
|
> 是一种xml文件,标明所依赖的side-by-side组建。
|
||
|
> 如果用VS开发,可以Set通过porperty->configuration properties->linker->manifest file->Generate manifest To Yes来自动创建manifest来指定系统的和CRT的assembly版本。
|
||
|
|
||
|
* 样例:
|
||
|
|
||
|
|
||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||
|
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
|
||
|
<dependency>
|
||
|
<dependentAssembly>
|
||
|
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
||
|
</dependentAssembly>
|
||
|
</dependency>
|
||
|
<asmv3:application>
|
||
|
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
|
||
|
<dpiAware>true</dpiAware>
|
||
|
</asmv3:windowsSettings>
|
||
|
</asmv3:application>
|
||
|
</assembly>
|
||
|
|
||
|
* 详解
|
||
|
> 观察上面的manifest文件:
|
||
|
> <xml>这是xml声明:
|
||
|
|
||
|
版本号----<?xml version="1.0"?>。
|
||
|
这是必选项。 尽管以后的 XML 版本可能会更改该数字,但是 1.0 是当前的版本。
|
||
|
|
||
|
编码声明------<?xml version="1.0" encoding="UTF-8"?>
|
||
|
这是可选项。 如果使用编码声明,必须紧接在 XML 声明的版本信息之后,并且必须包含代表现有字符编码的值。
|
||
|
|
||
|
standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。
|