Window$

微软Windows操作系统相关

十一月 30, 2015

在Unity Android 程序中使用动态库及注意事项

很多C/C++代码以动态库的方式供第三方调用,在Unity中,这类文件(dll for windows, *.so file for Android/Linux, *.dylib for MAC OSX)叫插件。 在Unity开发的Android程序中使用动态库插件是非常方便的,曾经因为被误导而放弃使用unity,转而研究Android通过原生Java的JNI方式包装*.so文件,虽然还行,但是JNI晦涩丑陋的API实在看着不舒服。相对而言,C#也是可以直接包装*.so文件并在Android系统中直接调用的,而且Unity制作Android[...]
Read More »

六月 11, 2015

Unity 5.0 中使用C/C++开发的dll插件使用中的问题 DllNotFoundException 问题集

Unity 中会经常用到C/C++开发的动态库(dll),Unity称为第三方插件,或plugin,这是非常厉害的扩展方法,但是Unity使用dll也非常痛苦,错误百出。 最常见的问题是 DllNotFoundException,就是找不到动态库。导致DllNotFoundException的原因很多,现把一些可能的情况,以及其解决方案一一列举: 1、DllNotFoundException:[...]
Read More »

十二月 10, 2014

Returning Strings from a C++ API to C#

从C++的dll中返回字符串是一种经常用到的C#调用C++函数的方式,但是带有返回值的调用一直是说不清道不明的问题,不细细研究,的确没法用起来。 这里直接给出一个正确的做法,后面会提供一份Google出来的资料,讲的非常好。原理知道了,对于返回结构体也应该是可以按同理搞定的。   Code[...]
Read More »

五月 27, 2014

Capturing the Desktop Screen with the Mouse Cursor Image

下面的文章介绍了两种截屏方式及如何“截取”光标的方法。 通常情况下是无法截取光标的,因为光标不属于窗口中的windows元素,而是独立与窗口系统的另一层东西,叫Hot[...]
Read More »

五月 19, 2014

三种截取屏幕的方式

Various methods for capturing the screen By Gopalakrishna Palem, 19 Sep 2006 Download GDI source code – 72.1 Kb Download DirectX source code[...]
Read More »

五月 9, 2014

How can I return a string from a C dll to C#?

// c code: #include <ole2.h> /* needed for CoTaskMemAlloc */ EXPORT char* getUrlFromBaseURLInList(char *ListFilePath, char *SrchBaseURL, char*[...]
Read More »

五月 9, 2014

svn、bugzilla等穿过防火墙访问:如何在 Windows 防火墙中打开端口

如果 Windows 防火墙阻止某一程序,而您希望允许该程序通过防火墙进行通信,通常可以通过在 Windows 防火墙允许的程序列表(也称为“例外列表”)中选中该程序来实现。若要了解如何进行此操作,请参阅允许程序通过[...]
Read More »

二月 21, 2014

解决 error C1083: 无法打开预编译头文件xxx.pch: No such file or directory

问题产生: 通常情况下不会出现这种错误,我出现这样的错误提示是因为,我要发布的是一个静态库,于是把要发布的头文件放到了include目录下,把其他文件(包括stdAfx.h及stdAfx.cpp)放到了src目录下,于是编译时提示: 错误[...]
Read More »

二月 18, 2014

【屌丝们,让老夫来拯救你们吧!】MAC OSX 10.9 下通过U盘安装Win8/Win8.1

这顿折腾就不说了,折磨啊,苦逼的想谋害心爱的MBP了,重点是,最后参考了官网的说明,终于定位到了问题所在:10.9后BootCamp更新到了5.1了,这个版本只支持部分操作系统的安装,不是所有的Win7、Win8版本都可以安装!或者说,Win8的有些版本对硬件(尤其是硬盘)的要求,决定了BootCamp只能支持部分系统的安装,而不是所有!!!   apple官网Frequently[...]
Read More »

二月 16, 2014

Enable Bootcamp to install from usb for OSX 10.9**WORKS**

要不说老外还是牛逼啊:   So basically, I have trying to install windows on my mbp using a usb drive. However bootcamp wont allow me[...]
Read More »

二月 15, 2014

用U盘在Macbook Pro上安装Win8(双系统/3分区)

帮朋友刚买的MBP装Win8,2012年中的13寸MBP,系统OS X 10.8.2,硬盘500G, 最终结果为:OS X系统分区+Win8系统分区+Exfat数据共享分区(不装插件共享数据)。 OS[...]
Read More »

八月 3, 2013

揭开SVCHOST.exe进程之谜

svchost.exe是nt核心系统的非常重要的进程,对于2000、xp来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。 大家对windows操作系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个[...]
Read More »

七月 25, 2013

在C#中调试C++的DLL

“我的小伙伴们都惊呆了!” 今天才发现,其实C#是可以跟进C++代码的!!!在VS2012里的做法是: 在C#项目上右键点击,在右键菜单上选择“属性”[...]
Read More »

七月 21, 2013

四元数及其平滑处理

最近做camera 的 AI,需要对四元数,欧拉角等要有一定的了解,把前面学习的整理了一下: 1。四元数的优势  三维空间的旋转完全可以由4元数来胜任。传统意义上需要3×3矩阵来进行向量的旋转(4×4矩阵的第四列表示平移)。所以四元数更节省空间,运算速度更快。既然四元数能方便的表示3D旋转,那么对他们进行插值就能产生平滑的旋转效果。 劣势可能是比较抽象,不大好理解。而且据说顶点变换还是矩阵效率更高(涉及到平移)。 2。四元数的物理意义 Q([...]
Read More »

六月 1, 2013

临界区,互斥量,信号量,事件的区别

四种进程或线程同步互斥的控制方法 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事[...]
Read More »

五月 22, 2013

Macbook双系统多分区的解决方案

一些前序知识: 1、Mac系统不是Intel的i386架构,没有Bios,但是有EFI,通过EFI管理系统的引导。 2、Mac系统的分区表采用GUID,不是MBR。因此如果硬盘完全交给windows控制,会导致Mac系统无法启动。 3、任何对MBR的强行操作,会导致已经装好的双系统引导失效。 4、Mac的EFI分区会用GPT锁定,不要尝试去操作这个分区。   我们以一台Macbook[...]
Read More »

五月 10, 2013

C++通过Callback向C#传递数据

现在比较流行C#与C++融合:C#做GUI,开发效率高,C++做运算,运行效率高,二者兼得。 但是C++与C#必然存在数据交互,C#与C++dll的数据交互从来都是一个让人头疼的问题。 从调用方式看也有两种情况: 1、C#调用C++函数 这种情况用的比较多,数据流向可以是C#流向C++,通过参数将数据传递给C++(如:SetData(double[][...]
Read More »

四月 12, 2013

C# import dll的P/Invoke调用在性能上的损失

    Net Framework提供了P/Invoke方式从托管代码中调用非托管的本地Dll,但是Micorsoft表示P/Invoke的性能并不是很好,远远达不到本地代码调用本地代码Dll的性能,所谓P/Invoke的性能不好并非是本地代码的执行效率问题,P/Invoke不会影响到非托管代码的执行,只是调用过程中的开销比较大,也就是说高密度频繁调用小量的高效率代码的代价可能会超过纯粹的托管代码,其效率损耗主要在托管类型与本地类型的相互转换上,以及非托管Dll的加载与释放上,所以使用P/Invoke非常适合足够规模一整块的高效率代码调用,而非频繁的小规模调用,小规模高密度频繁的P/Invoke调用往往在性能上得不偿失。 [...]
Read More »

二月 22, 2013

C#调用C/C++动态库必须注意的几个问题

经常需要封装一些C/C++函数放入动态库中给C#程序调用,通常情况下直接写成如下形式即可: C#封装调用: [DllImport("depressor.dll")] private[...]
Read More »

十一月 2, 2012

C#中利用联合类型(union)做数值类型转换(byte[] to float)

在C/C++中,联合类型经常用来做数据类型转换,比如下面的联合类型可以直接将char数组转换成float类型: #include <iostream.h> #include[...]
Read More »

Proudly powered by WordPress and Sweet Tech Theme