C#
lnc2003
这个作者很懒,什么都没留下…
展开
-
C#调用VC6.0制作的DLL 对 PInvoke 函数的调用导致堆栈不对称问题
在引入DLL中的方法时,有时会出现以下错误报告:“在使用托管代码调用非托管代码时,发生“对 PInvoke 函数“UseTwiHikVisionDllTest!UseTwiHikVisionDllTest.TwiHikVision::GetFirstPic”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。””下面为大家介绍一种解决方法。解决方法很简单,只要添加属性:Calling...转载 2021-06-22 10:13:19 · 470 阅读 · 1 评论 -
C# 利用反编译破解软件教程
1. 什么是反编译?计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。2.反编译工具反编译工具:ildasm C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin再编译工具:ilasm C:\Windows\http://Mi转载 2021-06-08 13:15:14 · 7093 阅读 · 1 评论 -
3.13 MonoForAndroid用户人机界面--置换文字颜色的机关
创建一个字定义颜色数组,单原创 2014-06-24 13:52:47 · 868 阅读 · 0 评论 -
3.14 MonoForAndroid用户人机界面--控制不同的文字字体
除了文字颜色之外,与文字对象息息相关的文字大小(Size)及字体(fo原创 2014-06-24 14:07:05 · 917 阅读 · 0 评论 -
3.16 MonoForAndroid用户人机界面--自制计算器
Main.axml<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent">原创 2014-06-24 16:06:32 · 745 阅读 · 0 评论 -
3.17 MonoForAndroid用户人机界面--关于(About)程序信息 Menu功能菜单程序设计
程序里默认重写OnCreate之外,还需要另外新建两个类函数:OnCreateOptionsMenu,原创 2014-06-24 17:03:44 · 866 阅读 · 0 评论 -
3.15 MonoForAndroid用户人机界面--如IPHONE拖动相片特效 Gallery画廊
Main.axml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/white" android:orientation="vertical" android:layout_width="fill_parent"原创 2014-06-24 15:41:50 · 760 阅读 · 0 评论 -
浅析C# 异步编程的两种方式
一.传统BeginInvoke方式. 二. Async 和 Await 的异步编程原创 2014-06-26 15:52:56 · 1152 阅读 · 0 评论 -
C# winform程序运行过程中提示"尝试读取或写入受保护的内存.这通常指示其他内存已损坏的"
C# winform程序运行过程中提示"尝试读取或写入受保护的内存.这通常指示其他内存已损坏的" 错误原创 2014-06-25 12:10:51 · 9956 阅读 · 0 评论 -
C# List排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ListSort { class Program { static void Main(string[] args)转载 2014-06-27 16:36:25 · 554 阅读 · 0 评论 -
C#解决MDI窗体闪屏的方法
最近从师兄手上接了一个C#的项目,需要用到MDI窗体,可是每当我显示子窗体的时候会有一次“闪烁”,很明显,看起来非常不爽,查找许久,知道是每次在show()子窗体的时候都会调用子窗体构造函数重绘窗体,其中需要将子窗体的尺寸调整到我在程序中设置的大小,无论我这样设置,这个窗口大小变化总会在show()的时候显示出来,我试过网上说的设置双缓冲、先隐藏窗体等启动之后再显示、借助定时器设置窗体的o转载 2014-06-23 09:35:43 · 831 阅读 · 0 评论 -
System.BadImageFormatException: 试图加载格式不正确的程序。
写了一个winform程序,引用的一个第三方的dll,原创 2014-08-06 15:45:18 · 3593 阅读 · 1 评论 -
如何用 MEF 扩展应用程序
最近在写一篇关于如何扩展 Visual Studio 编辑器的文章时,用到了 MEF,因此打算写一篇文章提一下这个技术点。本篇文章并不打算详细介绍 MEF,只是一个最简单的入门,相信您在阅读本篇文章后,可以迅速开发出一个可扩展的应用程序。简 介MEF(Managed Extensibility Framework),是微软推出的一款用于搭建可扩展应用程序的框架,起初是独转载 2014-09-18 10:47:06 · 811 阅读 · 0 评论 -
平台调用P-INVOKE完全掌握,C#和C++互相调用
第一:C# 调用C++,使用P-INVOKE技术调用C++编写的动态链接库。而动态链接库导出的一般有两种调用协议,__stdcall和_cdecl。下面展示调用两种不同调用协议的方法:C++: 1 int __stdcall Test1(int i)2 {3 return printf("The __stdcall invoke convesion:%d\n",转载 2014-09-18 15:43:58 · 710 阅读 · 0 评论 -
平台调用P-INVOKE完全掌握, 结构体边界对齐和内存布局
在使用结构体指针,进行C#和C++的互相调用。边界对齐是一个大问题,因为边界对齐问题,结构体的成员并不是顺序在内存一个挨着一个的排序。而且在C++中可以使用#pragma pack(n)改变边界对齐的方案,那C#的结构体怎么对应C++的结构体那?(什么是边界对齐,这里不解释,不懂得可以去看看C++基本编程之类的书好好恶补一下.) 第一:最普通的情况下,C++代码没有转载 2014-09-18 15:44:46 · 516 阅读 · 0 评论 -
平台调用P-INVOKE完全掌握, 字符串和指针
可以说新手使用P-INVOKE最开始的头疼就是C#和C++的字符串传递,因为这里涉及到两个问题。第一:C#的string和C++的字符串首指针如何对应。第二:字符串还有ANSI和UNICODE(宽字符串)之分。 本文分三部分阐述:第一:字符串指针当输入参数,第二:字符串指针作为返回值,第三:字符串指针作为输入输出参数。 C++转载 2014-09-18 15:44:43 · 627 阅读 · 0 评论 -
平台调用P-INVOKE完全掌握, 指针大全
这篇是讲述P-INVOKE中,应对各种指针的方法。包括普通指针,字符串指针,二级指针,指针数组,函数指针,结构体指针。篇幅估计有点长,大家耐心点看。嘿嘿~~ 第一:普通指针,包括char *,short *,int *,__int64 *,这些指针进行平台调用是都对应C#的IntPtr类型,然后使用Marshal.ReadXXX()系列函数读取就可,写内存时使用Marshal.Wr转载 2014-09-18 15:43:44 · 735 阅读 · 0 评论 -
平台调用P-INVOKE完全掌握(完结篇),自定义Mashaler
这是P-INVOKE系列的最后一篇,也是万剑归宗的一篇,基本上只要函数签名对了,用他可以传递任何参数,函数的输入输出参数和返回值你也可以随心所欲地修改。把这个放在最后也是最完美的结局吧!! C++:测试代码如下: 1 struct Test 2 { 3 int test; 4 }; 5 6 //static Test _test; 7转载 2014-09-18 15:48:45 · 587 阅读 · 0 评论 -
C# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke错误的解决办法
在使用原创 2014-08-08 16:33:57 · 26098 阅读 · 5 评论 -
C# beep 演奏两只老虎乐曲代码[K.8]
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace beep两只老虎源码{ class Program { static void Main(string[] args) {转载 2014-08-21 11:21:00 · 3117 阅读 · 0 评论 -
谈谈MVVM中DelegateCommand:ICommand的原理
在学习MVVM的过程中,用到了ICommand这个重要的消息模式,不过都是看的前辈们的代码去模仿。 我想,学习不仅要学技能,更要学原理。 当我们谈及Commands时,一般说来,Command有两个功能: a:执行一个特殊的行为:command的主要功能。 b:确定某一UIElement的视觉状态(visual state):例如确定button是否可用。转载 2014-08-21 14:22:48 · 7907 阅读 · 0 评论 -
C# 属性上方的标识符说明
Browsable指定属性是否应该在属性窗口中显示,使用布尔值设置。一般情况下,对于常用的和比较重要的属性设置Browsable为true,否则,设置Browsable为false。 EditorBrowsable设置属性在编辑器中的可见性,比如设置在智能提示列表不显示或高级用户才可以看到该属性。 Category指定属性在属性浏览器中进行分组显示的类别。该设计时特性帮助可转载 2014-09-19 16:02:09 · 2180 阅读 · 0 评论 -
WinForm 语音播报数据
TTS, Text To Speech的缩写,是使用语音朗读文本的技术。目前,在国内应用较多的是排队叫号系统Windows 平台的TTS,通常使用的是微软自带的 Speech API。Windows XP 自带的是 Speech API 5.1,默认是只支持英文的。如果要朗读中文,需要安装LangPack,里面支持简体中文,不过,是个男生的发音。从Vista开始,默认自带的 Micro转载 2014-08-14 14:34:35 · 7642 阅读 · 1 评论 -
平台调用P-INVOKE完全掌握, 结构体和结构体指针
这篇讲关于结构体和结构体指针的P-INVOKE,关键有4个P-INVOKE类型,结构体作为输入输出参数。结构体指针作为输入输出参数。还有结构体内的成员类型分为:数组,指针,指针数组,结构体,结构体指针,结构体数组,结构体指针数组。当然还有类继承(这里只介绍了单继承)。其中有一个比较费解的是结构体作为返回值的P-INVOKE的奇怪现象,下一篇结合反汇编讲解。 第一:C++结构转载 2014-09-18 15:45:31 · 612 阅读 · 0 评论 -
C#中毫米与像素的换算方法
C#中以像素作为尺寸单位,像素是一种相对的尺寸概念,与毫米的转换与当前显示器的分辨率有关。在不同分辨率下转换的系数不同。借助GDI可以完成毫米至像素的转换。public static double MillimetersToPixelsWidth(double length) //length是毫米,1厘米=10毫米{ System.Windows.Forms.Pan转载 2014-10-23 15:37:34 · 1169 阅读 · 0 评论 -
c#简单绘画操作
一、要绘画就要有画布,如果我们是在PictureBox上画画的话,可以这样声明画布Graphics g = Graphics.FromImage(this.pictureBox1.Image);如果是在panel中绘画的话,可以这样写Graphic g = this.panel1.CreateGraphics();有了画布,一切就可以开始了,通过调用这个Graphi转载 2014-10-23 11:37:12 · 1217 阅读 · 0 评论 -
c#窗体关闭时可查看关闭的原因
private void Form2_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = true;原创 2014-11-12 10:19:22 · 984 阅读 · 1 评论 -
C#表示空字符
空字符,开始想想不就是打两个[ ' ],可后来发现老报错.于是乎在里面作死得打[ " ],可还是错...有点-_-#...想法过于简单...囧 ..再于是乎打开桌面的MSDN,找Char的成员...哈哈,发现了char.MinValue (MSDN解释:表示 char 的最小可能值) 最后上网查查:哦也,还发现了其他方法 \(^o^)/char c转载 2014-10-17 14:15:31 · 1031 阅读 · 0 评论 -
C# 只允许运行一个实例
互斥进程(程序), 简单点说,就是在系统中只能有该程序的一个实例运行. 现在很多软件都有这功能,如Maxthon 可以设置为"只允 许打开一个窗体",还有Bitcomet等. 我也是看到这些软件的这个功能才来研究这个问题的. 要实现程序的互斥,通常有三中方式,下面 用 C# 语言来实现:实现方式一: 使用线程互斥变量. 通过定义互斥变量来判断是否已运行实例.C#实现如下:转载 2014-11-19 14:29:14 · 463 阅读 · 0 评论 -
C# 把Keys 直接转换为键盘上得Char值
我在做超市软件前台时,原本以为写快捷键设置时没什么难度,真写到时竟然遇到了个小麻烦: 比如我键盘上得到的是Keys 枚举类型,但是将来F1帮助窗体上确要显示成对应的char值,eg:Keys.Add 需要显示成'+' 那用KeyPress 监听的话又监听不到F1,F2...等键,所以只能想办法将Keys 值转换为char 值 下面是我写的类:usin转载 2014-10-17 09:31:56 · 3934 阅读 · 0 评论 -
类型初始值设定项引发异常
-上午打开VS编译程序的时候,突然出现了这个运行时错误“类型初始值设定项引发异常”。昨天还没有这个错误呢,今天就突然出现,搞得我一头雾水。上网搜了一下,发现有很多人遇到了这个问题。经过一番折腾解决了这个问题后,发现很多人都没有意识到其症结所在,于是写这个随笔,给大家点启发,也给自己做个备忘。症状描述:我的程序需要连接一台MQ服务器(其实就是个台式机,每天下班关机),如果服务器没有开,程转载 2014-11-21 17:30:50 · 3754 阅读 · 0 评论 -
Csharp iTextSharp create pdf file
/* //http://sourceforge.net/projects/itextsharp/ *http://stackoverflow.com/questions/8713963/itextsharp-pdf-resize-document-to-accomodate-a-large-image *http://www.inliteresearch.c转载 2014-11-24 11:04:52 · 1197 阅读 · 0 评论 -
互斥体
[STAThread] public static void Main(string[] args) { //声明互斥体。 Mutex mutex = new Mutex(false, "Test"); //判断互斥体是否使用中。 bool Running = !mutex.WaitOne(0,转载 2014-11-07 10:05:32 · 449 阅读 · 0 评论 -
C# winForm 窗体闪烁问题
在构造函数里加上以下代码: this.DoubleBuffered = true;//设置本窗体 SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.转载 2014-11-07 10:01:04 · 747 阅读 · 0 评论 -
sqlserver2008r2中使用表值函数
1.定义表值类型CREATE TYPE [dbo].[TableType] AS TABLE( [Id] [varchar](20) NOT NULL, [Num] [int] NOT NULL, [Used_DoseCount] [decimal](18, 4) NULL2.定义存储过程CREATE PROCEDURE [dbo].[MyProc]@demo TableTy原创 2015-01-08 13:20:11 · 992 阅读 · 0 评论 -
VS编译WebService 报 进程不具有此命名空间的访问权限的解决办法
但用VS在控制台程序里编辑运行WebService的时候报这样的错:未处理System.ServiceModel.AddressAccessDeniedException HResult=-2146233087 Message=HTTP 无法注册 URL http://+:3333/employees/。进程不具有此命名空间的访问权限(有关详细信息,请参见 http://go.mi转载 2014-12-03 10:18:03 · 1451 阅读 · 0 评论 -
"对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
有时调用com组件时,会返回“HRESULT E_FAIL”错误,这时有可能的错误原因除了代码有错外,另一个原因还可能是我们没有正常配置dcom的属性。如果是后者,我们可以按如下的方法来解决错误: 1)确保“Distributed Transaction Coordinator”服务是开启的。 2) 在运行中录入“dcomcnfg",打开组件服务字符串,选择组件服务--->计算转载 2014-12-04 10:20:23 · 23877 阅读 · 2 评论 -
WCF配置小结
一.基于命名管道的内部进程通信1.宿主程序App.config命名空间:DMBQWCF,具体的服务类:Service1 <endpoint address="net.pipe://localhost/" binding="netNamedPipeBinding" bindingConfiguration="" name="节点1原创 2014-12-04 16:46:16 · 397 阅读 · 0 评论 -
C#更改当前输入法
1)遍历系统中所有的输入法,可以用以下程序片断:foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages){this.textBox1.Text += "\r\nName> "+lang.LayoutName+"\r\nCulture> "+lang.Culture.Name + "\r\n";}转载 2014-12-19 14:24:31 · 3934 阅读 · 0 评论 -
WCF服务怎样与宿主程序交互
WCF服务必须host到一个宿主程序中才能够使用,但WCF服务如何与宿主程序进行交互呢?如果宿主程序只是请求WCF服务的一个Operation很简单,只需要添加服务引用,像普通的客户端那样开发就可以了。但如果希望当WCF服务被访问的时候主动与宿主程序进行交互,则如何处理呢?这里用个例子来说明:WCF服务WAFService继承自IWAFService,其只有一个Operatio转载 2014-12-24 17:22:22 · 1876 阅读 · 0 评论