Skip to content

eeroom/Azeroth.Kits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本机互操作性

P/Invoke
	场景:c#调用c/c++函数库
	特别说明:CLR公共语言运行库中提供的调用本机代码函数库的办法称为P/Invoke
	平台:windows和linux,.net framework和mono都实现了P/Invoke,提供了配套的关键字和特性类
	本机调试:可以在c#和c代码之间无缝衔接,设置方法:项目属性->>调试->>启用本机调试
	c/c++函数转c#方法签名的参考资料:https://www.pinvoke.net/
cppsharper 
	场景:c#调用c/c++函数库
	开源项目https://github.com/mono/CppSharp,包装c/c++函数库给c#调用
COM互操作
	.net framework提供了配套的特性类和工具,.net调用

Excel自定义函数(基于.net程序集)

创建普通类库项目
	修改程序集元数据信息:[assembly: ComVisible(true)]
	需要导出的class增加相关特性
注册程序集为com组件,因为excel严格区分32、64位版本,,只能加载对应版本注册的com组件
	64位:	C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe 程序集完整路径 /codebase
	32位:C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe 程序集完整路径 /codebase
加载com组件
	启动Excel,菜单:开发工具->>加载项->>自动化->>导出的class

Excel自定义函数(基于dna框架)

本质是走office提供的c++扩展接口,利用互操作,c++扩展接口→dna提供的xll适配器→.net程序集
具体参看项目中的README.md文件

Excel自定义函数(基于vba)

vba语法

WindowsBase.dll类库

 System.Windows.Interop.MSG :对应win32的窗体消息数据结构

System.Windows.Forms.dll类库

System.Windows.Forms.UnsafeNativeMethods:非公开的类,但是包含大量win32的方法,需要调用kernel32,user32等里面的方法可以来这里面参考

silverlight项目A关联web项目B

A项目的项目文件不做改动
B项目的项目文件进行修改,找到节点PropertyGroup,然后 增加一条信息
<SilverlightApplicationList>{22E9E578-62FE-4CF0-83C7-6F27FA2B67A8}|..\HttpFileClient\HttpFileClient.csproj|silverlight|False</SilverlightApplicationList>

关联后的效果就是:A项目编译后,会生成一个xap文件到B项目的silverlight目录下,
			或者是:B项目编译的时候,会去编译A项目并且得到xap文件放到silverlight目录下
这个本质是msbuild执行项目的编译target,某个target中有命令让msbuild执行了这个操作,具体哪个target待研究

silverlight的开发环境搭建

客户端浏览器只需要装runtime即可,并且版本越高越好

开发机需要装:
	silverlight sdk(runtime+msbuild的编译配置)
	silverlight developer(vs集成,项目模板)
	silverlight toolkits(官方额外组件库)

特别说明:silverlight sdk已经包含runtime,不需要重复安装
特别注意:如果开发机装了runtime,并且版本和sdk中的runtime版本不一致,会导致无法调试
	所以开发机sdk版本低一点没关系,客户端的runtime版本高就行,这样客户端一定可以正常执行sdk打包出来的xap包

silverlight本机文件读写

开发环境使用localhost访问,只需要项目属性中勾上【在浏览器内运行时需要提升的信任】即可,
	背后:vs增加了一个InBrowserSetting.xml的配置文件,编译的时候会打包到xap文件
用户环境下,还需要对xap进行签名,然后客户电脑安装xap签名证书的公钥并且添加到信任证书

About

P/Invoke;多线程;报表;打印;windows workflow foundation;网络编程

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published