编程

探索

C#中如何替代C/C++中的malloc函数(非托管指针)

这个问题是在我将pi_agm.c移植到C#时研究的,话不多说,直接进入正题。 提示:如果你从来没有用过指针,请先学习指针的含义以及用法。 首先在类名前面加入unsafe关键字,例如 unsafe class Program 这是由于C#程序托管于.NET平台之上,对指针的操作是有危险性的。并且要在Properties(在解决方案资源管理器中)中勾选“允许不安全代码(F)”。 然后再引用中加入: using System.Runtime.InteropServices; 这是非托管代码类。我们就要用到这个类的Marshal.AllocHGlobal与Marshal.FreeHGlobal。下面用一个例子解释一下用法。例如,在C中有以下语句: short *a; a = (short*)malloc(sizeof(short)*SIZE); //程序内容 free(a); 那么在C#中就要写成: short* a;

By SkiTiSu

探索

解决C#调试时显示“调试器无法继续运行该进程。无法启动调试。”

不知道咋整的,调试程序的时候总是跳出来“调试器无法继续运行该进程。无法启动调试。”到MSDN上查,解决方法太复杂,不对啊,其他都能调试。想了想做了啥事,哦,原来是弄了个允许多个项目打开。 右击解决方案名称,点属性 原来是选在多启动项目的,现在改成单启动项目,ok,终于可以调试程序了T T。 当然,出现此情况也有可能是程序内出现编译器无法预知的死循环造成的(一般不是这种情况)。 如果上述方法依然无效,可参考MSDN文章http://social.microsoft.com/Forums/id-ID/f6a44ed9-ef67-469d-a95b-f3b247d69b21,但是他介绍的方法我试过了,没有用。。。就是更改为单启动。 希望亲身经历能帮到各位~谢谢~欢迎评论,大家互相讨论~

By SkiTiSu

探索

解决C#在x64平台调用dll出现BadImageFormatException

受不了了,今天玩调用dll,死活出不来,一直显示BadImageFormatException,点击VS里面的帮助,一直忽视了第一条。。。其实解决很简单。。。 如果您的应用程序使用了 32 位组件,请确保该应用程序始终采用 32 位应用程序的运行方式。 如果应用程序项目的“平台目标”属性设置为 AnyCPU,则编译后的应用程序在 64 位或 32 位模式中均可运行。 如果采用 64 位应用程序运行方式,则实时 (JIT) 编译器便会生成 64 位本机代码。 如果应用程序依赖于某个 32 位托管组件或非托管组件,则在 64 位模式中无法加载该组件。 若要纠正此问题,请将项目的“平台目标”属性设置为 x86,然后重新编译。 确保未使用利用其他 .NET Framework 版本创建的组件。 如果使用 .NET Framework 1.

By SkiTiSu

探索

C#的Textbox中关于中文输入法的设置 - ImeMode

最近在学习C#,学到Textbox的时候发现每次切换完输入法后,换到下一个Textbox时原来的状态就没有了,也就是说每个框都要重新由英文切换到中文,非常繁琐,查了查我的这本《C#入门经典》,由于是外国人编的书,没有说明这部分。 【概要】实测后发现Close为最佳,默认为英文输入,进入新版搜狗后默认是半角+中文标点。 下面是网上查找到的一篇文章,文章比较老了,天书实测了新版搜狗,加粗部分为补充的内容 取值 五笔加加 微软拼音3.0 搜狗拼音 说明 NoControl 首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置 调出后默认为英文输入状态  调出后默认为西文标点 英文输入时为半角字符 调出后默认为英文输入状态  调出后默认为西文标点 英文输入时为半角字符 不建议使用 On 调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置 调出后默认汉英文输入、中西标点或全半角字符继承上次设置 调出后默认汉英文输入、中西标点或全半角字符继承上次设置 Off 调出后默认为汉字输入状态 中西标点或全半角字符继承上

By SkiTiSu
苏ICP备19030749号-1