随笔分类 - c#
摘要:只记录关键点 首先protoc 需要自己去下载,下载地址 Release Protocol Buffers v23.3 · protocolbuffers/protobuf · GitHub 然后需要去找里面编译好的程序,(我windows电脑就选的) 我是go写的服务端 就把解压出来的protoc
阅读全文
摘要:近一段时间公司为搞跨平台的客户端,我的wpf客户端逐渐被放弃,我的工作也越来越少,新的客户端采用qt来做,也有可能是qt开发进度太慢,项目比较紧,于是想让我的客户端兼容 新的平台服务端, 新平台的服务端是基于老平台服务端开发的,功能基本一致,只是协议格式和具体字段有些改变,于是我原有的 要兼容现有的
阅读全文
摘要:/// <summary> /// 获取第一个可用的端口号 /// </summary> /// <returns></returns> public static int GetFirstAvailablePort() { int MAX_PORT = 65535; //系统tcp/udp端口数最
阅读全文
摘要:效果图如下 控件的背景 和按钮的背景样式 都是用图片做的,本次就不上传了 只传代码 前台样式代码 <Style x:Key="MeetingTextBox" TargetType="{x:Type TextBox}"> <Setter Property="Height" Value="28"></S
阅读全文
摘要:最近在写wpf的时候发现一个问题,原本定义的580*180 的窗口 在Show的时候窗口被放大了,后来发现是电脑显示器 放大了 125% 放在平时 倒也无伤大雅,可是我现在写的窗口 需要按照自己的方式来定位,窗口被放大后 再按照自己的坐标来定位位置 窗口就跑飞了, 百度了各种方法之后 无果,只能手动
阅读全文
摘要://从Handle中获取Window对象 private static Window GetWindowFromHwnd(IntPtr hwnd) { var fromHwnd = HwndSource.FromHwnd(hwnd); if (fromHwnd != null) return (Wi
阅读全文
摘要:日常我们使用的Timer 基本都是System.Timers.Timer,但是前段时间使用的时候就发现 在它的Tick处理中有个长时间未响应的处理 结果发现界面会未响应,才了解原来 System.Timers.Timer 是使用的UI线程。 于是我赶紧百度了一下,还有个System.Threadin
阅读全文
摘要:c#只运行一个示例,并把当前程序 显示到最桌面 最近程序写的有问题,需要只运行一个实例,于是上网查 发现有两个方法,一个就是使用互斥量(System.Threading.Mutex),另一个就是使用进程名。 具体方法如下 ####互斥量 bool createNew; using (System.T
阅读全文
摘要:非UI线程的Timer 日常我们使用的Timer 基本都是System.Timers.Timer,但是前段时间使用的时候就发现 在它的Tick处理 中有个长时间未响应的处理 结果发现界面会未响应,才了解原来 System.Timers.Timer 是使用的UI线程。 于是我赶紧百度了一下,还有个Sy
阅读全文
摘要:一般写c#代码基本用不到 相互转换 只有调用c++中的dll动态库的时候才用的到 struct转intptr public static IntPtr StructToIntPtr<T>(T req) where T : struct { int size = Marshal.SizeOf(req)
阅读全文
摘要:SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢。 开始埋头苦干,找了半天也没找到合适的,后来有群里大佬告诉我是“流程混淆”并且告诉了我SmartAssembly这个工具。 let‘s
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_c21a857b0102wcus.html 常用的 DataAnnotations 1.Required :属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)]
阅读全文
摘要:代码原文连接 https://blog.csdn.net/a_dev/article/details/80990492
阅读全文