Csharp
Fantasy__MX
这个作者很懒,什么都没留下…
展开
-
C#调用C/C++编译的DLL失败的一种情…
最近在编写程序时遇到了一个问题,拿C#写的程序调用了返回类项为指针的DLL文件,编译时总是出现错误无法加载DLL“**.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。出现这种情况的可能原因之一是Windows平台下的C#基于.net.framework,也就是基于clr,公共语言运行库,而你所编写的动态链程序往往没有添加公共语音运行支持,此时只要打开dll原创 2014-03-17 15:40:20 · 954 阅读 · 0 评论 -
配带进度条的C#欢迎界面的实现
最简单的实现C#欢迎界面的实现方法是通过多个对话框(即C#工程中的Windows窗体)来实现,其中一个对话框做欢迎界面,将BackGroundImage设置为你喜欢的欢迎界面即可,在程序载入时,先载入这个对话框,并在对话框里设置一个Timer,按照一定的时间进行对进度条进行递进,这个对话框载入完成后,再进行其他初始化并启动主线程。原创 2015-01-22 21:54:08 · 1887 阅读 · 0 评论 -
C#写txt示例
C#读写txt需要用到文件流,首先需要包含文件流的命名空间using System.IO,然后需要定义一个StreamWriter变量,设置文件的保存位置 //测试,C#写txt public StreamWriter testwrite = newStreamWriter(@"d:\\testwrite.txt",true);然后通过下面语句进行写入txt原创 2014-08-10 13:25:05 · 488 阅读 · 0 评论 -
绘制有填充和无填充颜色的长方形和圆形(C#)
长方形和正方形是一样的,都是用画长方形函数来画,圆形和椭圆是一样的,都是用画椭圆函数来画,下面就以具体的程序为例来进行了解://正方形protected override void OnPaint(PaintEventArgse) { Pen drawingPen = new Pen(Color.Red, 5);e.Graphics.Dra转载 2014-08-10 13:18:39 · 11184 阅读 · 0 评论 -
Paint事件搭配timer实现动态实时绘图(C#)
在做显控的时候,有时候数据变化较快,需要实时进行绘图,这时候可以把Paint时间和timer结合起来使用,具体过程如下:首先按21的方法激活Paint事件,也就是绘图时间,然后编写绘图函数然后,在设计界面中添加timer控件,并对timer属性进行设置,Enabled属性设置为True,Interval属性设置为10,也就是一个很频繁的刷新速率。之后,双击timer,此时会激活time原创 2014-08-10 13:17:50 · 2856 阅读 · 1 评论 -
C#编译时出现“不安全代码只会在/unsafe编译的情况下出现”
C#编译时出现“不安全代码只会在/unsafe编译的情况下出现”的原因是在编译的代码中有不安全类型的方法和类,如调用了C++ DLL的指针等等,解决方法是:选择项目——属性——生成——允许不安全代码,具体如图4所示:原创 2014-08-10 13:22:39 · 1168 阅读 · 0 评论 -
鼠标移动函数的添加(C#)
有很多时候我们需要获取鼠标的当前坐标,并根据鼠标位置做一些操作,比如鼠标靠近某个方向或某个点时显示部分信息等等,C#的鼠标移动事件是非常方便的,你只需要在对话框设计的界面中关注属性那个工具栏,下面将结合图片进行详细说明:原创 2014-05-21 22:02:26 · 817 阅读 · 0 评论 -
C#编译时出现不是win32有效的资源文件的解决方法
最近在编程的时候遇到了一个非常奇怪的问题,完全写好的代码拷到另外一台电脑上编译时出现了错误d:\我的文档\桌面\B显源代码20140415\BView\BView\obj\x86\Release\CSC36.tmp”不是有效的 Win32 资源文件 Bview出现这种错误的一个主要原因是图标问题,这个应用程序被换过图标,同时这个图标在现在这台电脑上打开会显示无法预览,因此,以后原创 2014-05-21 21:45:52 · 4738 阅读 · 1 评论 -
完好的程序拷贝到其他电脑上无法编译的基本解决方法
不同电脑的配置和运行环境不同,因此在程序拷贝到别的电脑上无法编译的时候,请切记点击生成—清理解决方案,这样,与原电脑有关的临时文件就被清理了,与此同时,新的程序也就能够顺利编译了。原创 2014-05-21 21:46:24 · 1998 阅读 · 0 评论 -
C#路径设置相关知识
string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。//备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称转载 2014-05-21 21:38:06 · 731 阅读 · 0 评论 -
C#读写XML简单实例
首先,需要添加XML支持,即在C#中即using System.Xml;原创 2014-05-21 21:34:59 · 540 阅读 · 0 评论 -
带输入参数的exe编写(C#)
C#程序的输入参数在解决方案的Program.cs中进行定义,这个.cs文件一般是自动生成的,定义了C#程序的入口。默认情况都是不带参数的exe,对应的main函数为static void Main(),要把它改成带参数的,就要把这个改成static void Main(string[] args),其中args数组从0开始,arg[0]表示第一个参数,以此类推,然后编译就可以了。原创 2014-05-21 21:42:23 · 987 阅读 · 0 评论 -
调用带输入参数的exe(C#)
C#调用带参数的exe是很简单的,首先要调用一个命名空间:using System.Diagnostics;里面定义了一些与进程有关的东西,具体过程以一个例子给出:string[] arg =new string[3];arg[0] ="object";arg[1] ="beam";arg[2] ="detect";Process.Start("Bview.exe",(arg[0] +原创 2014-05-21 21:44:30 · 1824 阅读 · 0 评论 -
C#结构体和指针转换
在写C#通信程序时。发送数据,只能发送byte数组,处理起来比较麻烦不说,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,要在C#中发送结构体,可以按以下方法实现:1)定义结构体: //命名空间usingSystem.Runtime.InteropSe转载 2014-03-17 15:40:25 · 2042 阅读 · 1 评论 -
C#中调用C++代码
C# 中调用C++代码int 类型[DllImport(“MyDLL.dll")]//返回个int 类型public static extern int mySum(int a1,int b1);//DLL中申明extern “C”__declspec(dllexport) int WINAPI mySum(int a2,int b2){//a2 b2不能改变a1 b1//a转载 2014-03-17 15:40:18 · 469 阅读 · 0 评论 -
C#报错“OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码”的解决方法。
在VS下进行C#编程并调用C++的DLL时候,有很小的概率报错“OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码”,其解决方法是把VS菜单中的 调试—异常—Managed Debuggin Assistants—LoaderLock的选中状态去掉。原创 2015-01-25 18:03:17 · 2942 阅读 · 0 评论