博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年8月14日

摘要: this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.DoubleBuffer, true);this.SetStyle(ControlStyles.UserPaint, true);this.SetStyle(ControlStyles.ResizeRedraw, true); 阅读全文

posted @ 2012-08-14 11:00 未页 阅读(1287) 评论(0) 推荐(1) 编辑

2012年5月3日

摘要: 打开:private void openFileDialogBTN_Click(object sender, System.EventArgs e){OpenFileDialog openFileDialog=new OpenFileDialog();openFileDialog.InitialDirectory="c:\\";//注意这里写路径时要用c:\\而不是c:openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";openFileDialog.RestoreDirectory=true;openF 阅读全文

posted @ 2012-05-03 10:47 未页 阅读(372) 评论(0) 推荐(0) 编辑

2012年3月16日

摘要: 1. private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。2. C#中的委托是什么?事件是不是一种委托?委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。事件是一种特殊的委托。3. override与overload的区别?override 表示重写,overload 表示重载。override是子类和父类之间 阅读全文

posted @ 2012-03-16 15:18 未页 阅读(450) 评论(0) 推荐(1) 编辑

2012年2月27日

摘要: xml文件格式如下:<?xml version="1.0" encoding="utf-8"?><userdata createuser="false"> <dataconnection> <server>localhost</server> <uid>sa</uid> <pwd></pwd> </dataconnection><net> <name>jiayuan</name> 阅读全文

posted @ 2012-02-27 11:32 未页 阅读(167) 评论(0) 推荐(1) 编辑

2012年2月23日

摘要: 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式,数据按照这种格式在网络中传输然后再通过XSLT将数据转换成用户期望的样子表示出来,这样便轻易的解决了数据格式不兼容的问题。用于Internet的数据传输,我想,这是XML对于我们这些程序员最诱人的地方! 我们今天的主题不是论述XML的好处,而是讨论在C#中如何使用XML。下面我们来了解一下使用程序访问XML的一些基础理论知识。 访问的两种模型: 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象... 阅读全文

posted @ 2012-02-23 13:49 未页 阅读(491) 评论(0) 推荐(1) 编辑

2012年2月22日

摘要: 新建项目->VisualC++->win32->Win32项目->输入项目名称->next->应用程序类型选dll,附加选项选上“导出符号”,添加公共头文件视情况可以加上MFC->完成。 此时生成的项目有示例代码,可以在原来的代码上修改。 需要注意的是: #define 项目名_APIextern "C" _declspec(dllimport) 原来的宏定义可能不包括extern "C",加上可以被C#等语言调用。 在C#中调用的时候,把dll放到目录中, using System.Runtime.Intero 阅读全文

posted @ 2012-02-22 15:00 未页 阅读(1278) 评论(0) 推荐(0) 编辑

摘要: C#程序实现动态调用DLL的研究摘要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL释放,然后再加载释放出来的DLL,这个过程会 阅读全文

posted @ 2012-02-22 14:59 未页 阅读(1037) 评论(0) 推荐(1) 编辑

摘要: 被C#调用的DLL一般只需要把导出的函数以适当的形式呈现即可调用,比如extern "C" __declspec(dllexport)BOOLIntegrate3 (){...},这样的函数,在C#里面声明如:[DllImport("xxx.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)] public static extern bool Integrate3();,这里的调用相对是简单的,而有些数据类型则必须通过MarshalAs来做托管类 阅读全文

posted @ 2012-02-22 14:58 未页 阅读(1151) 评论(0) 推荐(0) 编辑

摘要: 本来是想实现控制台程序运行时自动全屏,但是只找到VC下的实现方法(http://www.vckbase.com/bbs/prime/viewprime.asp?id=347)。其中要使用两个未公开的Win32 API函数来存取控制台窗口,这就需要使用动态调用的方法,动态调用中使用的Windows API函数主要有三个,即:Loadlibrary,GetProcAddress和Freelibrary。步骤如下:1.Loadlibrary:装载指定DLL动态库2.GetProcAddress:获得函数的入口地址3.Freelibrary:从内存中卸载动态库但是C#中是没有函数指针,无法直接使用Ge 阅读全文

posted @ 2012-02-22 14:25 未页 阅读(530) 评论(0) 推荐(0) 编辑

摘要: 原来的工程是用C++语言编写的。如果需要在C#工程中调用c++完成的功能模块,一个简单的做法就是将原有C++模块封装为动态链接库(DLL), 而在c#中直接导入已有的DLL 接口。具体的做法如下:(1) 将原来C++模块封装为DLLa.创建和使用动态链接库(2) 在C#工程中声明导入的DLL中函数接口一个简单的实例如下:假设已有C++ 函数publicstaticexterninttutorial (int*z,int*x,int* y ); // C++函数声明为了在C# 中调用tutorial函数,需要在相应的CS文件中导入相关的函数声明:using System.Runtime.Inte 阅读全文

posted @ 2012-02-22 14:15 未页 阅读(420) 评论(0) 推荐(0) 编辑