C#
vaila_2017
这个作者很懒,什么都没留下…
展开
-
C#获取当前应用程序所在路径及环境变量
C#获取当前应用程序所在路径及环境变量一、获取当前文件的路径string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。(备注:按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中转载 2020-09-03 15:03:29 · 919 阅读 · 0 评论 -
Winform 中使用Chat控件绘制实时曲线时,绘图区闪烁问题解决办法
最近项目中使用Chat控件,根据接收到的串口数据实时绘制数据曲线,但是在绘制曲线时,绘图区闪烁严重,网上找了很多方法,都不起作用,双缓存也不起作用,最后使用protected override void WndProc(ref Message m) { if (m.Msg == 0x0014) // 禁掉清除背景消息 return; base.WndProc(ref m); }...原创 2020-09-03 11:43:08 · 773 阅读 · 1 评论 -
C#控件的闪烁问题解决方法总结
C#控件的闪烁问题解决方法总结最近对代码作了一些优化,试验后效果还可以,但是发现界面会闪烁,具体是TreeView控件会闪烁,语言为C#,IDE为VS2005。在查阅一些资料,使用了一些基本技术后(如开启双缓冲),发现没什么效果。 于是使用Profiler工具,查找出瓶颈在于每次更新完界面的EndUpdate操作(使用这个是为了减少界面更新次数,但这里不理想是因为控件中中的元素很多),猜想大概每次更新,.Net底层都会更新重绘每个图元,所以速度会慢,造成闪烁。但是如果这样,使用双缓冲应...转载 2020-09-03 11:37:00 · 976 阅读 · 0 评论 -
C# WinForm 用户自定义控件闪烁的问题
使用WinForm开发,当使用了大量的用户自定义控件UserControl时,界面拖动或切换时就会出现闪烁的问题。解决方法主要就是重写UserControl和Form的CreateParams方法。前端调用UserControl的窗体Form这样写:protected override CreateParams CreateParams{get{CreateParams cp = base.CreateParams;cp.ExStyle |= 0x0200000...转载 2020-09-03 09:50:40 · 907 阅读 · 0 评论 -
“无法加载 DLL“controlcan.dll”: 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具。
项目场景:C#程序调用外部C++动态库时问题描述:调用动态库时,出现:{"无法加载 DLL“controlcan.dll”: 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具。 (异常来自 HRESULT:0x800736B1)。"}应用程序事件日志显示:“XX\bin\Debug\xx.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.MFC,processorArchite原创 2020-09-01 10:34:41 · 5291 阅读 · 4 评论 -
MarshalAs属性和使用
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]MarshalAs属性指示如何在托管代码和非托管代码之间封送数据。当MarshalAsAttribute.Value设置为 ByValArray 时,必须设置SizeConst以指示数组中的元素数。当需要区分字符串类型时,ArraySubType字段可以选择包含数组元素的 UnmanagedType。此 UnmanagedType 只可用于作为结构中的字段的数组。 而SizeConst则是...转载 2020-08-27 13:46:07 · 1980 阅读 · 0 评论 -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明-天,没有什么比这个更让人恶心的事情了。因为:1.如果你的结构体里面包含TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。2.如果你的结构体里面包含数组成员,需要考虑定长的数组,而不是对应C#数据类型。3.如果你的结构体里面包含...转载 2020-08-27 12:01:00 · 167 阅读 · 0 评论