自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 二、C#数据类型

数据类型(Data Type)是一个很恼人的话题。似乎根本没必要对数据类型进行展开讲解,因为人人都懂。但是,数据类型本身又确实比较复杂,不仅涉及到值类型和引用类型,也涉及到内置类型和自定义类型,更涉及到C#类型、.NET类型、通用类型系统CTS、通用语言规范CLS、.NET standard等很多概念。本文就力争通过示例,把这些概念理清楚。

2024-07-21 12:58:42 894

原创 一、C#概述

原书第一章的内容非常简单,毕竟标题是Introducing C#,只是概述。从这一章看,《Essential C#12.0》并不是写给零基础学员的,正如本书《》所述,如果看这一章存在问题,那么您需要考虑换一本更浅显易懂的教材。本文不准备对原书内容做任何复述,仅以个人视角,力争一开始就陈述清楚几个关键概念,为以后学习大好基础。

2024-07-17 12:53:08 845

原创 0. 前言

我不认识Mark,所以这部简介是网上摘抄的:Mark Michaelis是创新型软件架构和开发公司IntelliTect的创始人、首席技术架构师和培训师。Mark领导着他的公司不断进取,同时在世界各地举办有关领导力或技术的会议,并代表微软或其他客户进行演讲。他撰写了大量文章和书籍,并且是东华盛顿大学的客座教授、Spokane .NET用户组的创始人,以及每年一届的TEDx Coeurd’Alene活动的联合组织者。

2024-07-16 20:16:05 352

原创 10. WinDbg综合实战

通过十篇文章,简单介绍了WinDbg调试Windows程序的方法。调试工具的使用,是一个熟能生巧的过程,道理并不很难,但需要记忆的命令较多,所以鼓励大家多多实际操作。软件调试真正的挑战,应该是计算机底层知识,比如对CPU、编译器、操作系统、汇编语言等,而这些知识又不是三言两语就能说清楚,所以,每当遇到困难时,我的建议是:不钻牛角尖,惹不起躲得起。说不定现在看来很难的问题,数月后便已不再是问题了。行文匆忙,错误与疏漏在所难免,欢迎批评指正。

2024-07-05 13:23:59 1041

原创 9. 让WinDbg自动打开DotNet Runtime源程序

本文介绍使用WinDbg调试 .NET应用程序的一个技巧。.NET应用程序的运行离不开CLR和即时编译器。如果我们想进一步学习即时编译器(clrjit.dll)的源代码,用WinDbg应该如何操作?下图是我们希望实现的功能:我们在调试自己测试用的C#程序Core.exe,调试过程中,我们把断点设置到了.NET Runtime源代码compiler.cpp 的 jitNativeCode 方法上,并且我们可以通过单步执行微软的源代码来跟踪Jit编译器的编译过程。

2024-07-03 11:42:14 709

原创 8. 托管PE文件结构

下面这张来自维基百科的图,简单描述了.NET托管程序的体系架构。

2024-07-01 18:13:53 547

原创 1. WinDbg概述

授之以鱼不如授之以渔,我们用一篇文章介绍了WinDbg的基本使用。我们并没有一个命令一个命令去讲解命令含义,相反,我们介绍了如何查所有的基本命令、元命令和扩展命令,介绍了如何使用帮助来查各个命令的使用方法。知道了方法以后,大家完全可以自学WinDbg软件的使用了,遇到问题就查帮助。相信随着使用次数的增加,对WinDbg功能的领会就会越来越深,逐步实现量变到质变。以后的文章中,除非特别必要,否则我不会再介绍WinDbg的具体命令含义了,而会聚焦于如何使用各种工具去调试、分析和学习.NET程序。

2024-06-29 13:24:16 787

原创 7. WinDbg观察托管程序架构

dumpdomain查到assembly和module!dumpmodule -mt ModuleAddress查到MethodTable!dumpmt -md MethodTable查到方法列表和EEClass!DumpClass EEClass查到字段。

2024-06-28 13:44:47 570

原创 6. 汇编语言与机器语言的差异

本文比较短,主要目的就是通过实例再次提醒读者,机器语言不等于汇编语言。对于调试老手来说,这个概念当然没必要强调,但对于刚学习编程的人来说,常常会搞不清楚两者的边界。虽然我们可以用汇编语言来分析本机代码,但如果遇到模棱两可情况,时一定要清楚只有机器码才是真正的CPU指令,

2024-06-27 13:03:02 425

原创 5. 保护模式概述

本篇,我们继续介绍Intel CPU。主要内容涉及:CPU运行模式、CPU内存模式、段寄存器、地址与操作数长度等。

2024-06-24 17:30:09 714

原创 4. CPU寄存器与指令系统

在前一篇文章中,我们通过一个C#示例,介绍了使用WinDbg分析引用类型的实际内存布局。该文章其实尚未完成有关这个话题的全部内容陈述,而仅仅说清楚了一个引用类型其实是由两部分构成的:在栈空间保存着引用类型变量,该变量保存着堆空间中该实例的引用,而所谓的引用,其实就是一个内存地址,或者叫做指针,而且该指针并未指向对象的首字节,而是指向了对象的MethodTable指针这个字段。在堆空间中,该对象其实包括了三个部分:最低地址的部分是对象头,也有书籍称其为同步块;紧接对象头的是MethodTable指针;

2024-06-22 19:10:42 763

原创 3. WinDbg程序调试

在《》中,我们介绍了如何使用k命令查看线程栈,如何在线程栈中找到目标地址,如何使用该地址作为g命令的目标参数,以及如何使用!u命令将C#源代码汇编成汇编语句。今天这篇文章,将使用一个全新的C#示例来介绍值类型以及引用类型的内存布局。

2024-06-21 18:41:08 691

原创 2. WinDbg 主要功能

本来想写一篇使用WinDbg分析值类型和引用类型的文章,悲催的事情发生了,调试过程中出现意外,电脑死机,再重新调试时,程序的加载地址和之前所写都不一致了。为了不让已经写的部分作废,就将题目改成了WinDbg Step by Step (一),简单介绍一下WinDbg的使用。

2024-06-20 17:14:01 802

原创 .NET虚方法与callvirt

对于刚刚接触.NET的同学来说,虚方法(virtual method)及其重写技术(override)是学习面向对象(OOPs)的一道不高不低的坎,迈过去了一马平川,迈不过去则懵懵懂懂,十分熬人。本文以C#编程语言为例,结合其编译后的CIL代码,对.NET平台的虚方法及其调用进行了深度探索,着重分析了CIL中call和callvirt的区别。

2024-05-31 17:33:25 609

原创 .NET中的beforefieldinit与静态构造函数

本文重点分析了.NET类型的初始化顺序

2024-05-29 15:04:51 1056

计算机+VS2022+汇编语言环境+语法高亮

本文首先用较短篇幅介绍了如何在VS 2022中创建、编译和运行x64汇编语言程序,并实现语法高亮功能。 然后将重点放到了VS原理中,通过层层递进,说明了如下问题: 比如为什么通过生成依赖项配置可以使用汇编程序?生成依赖项到底是什么意思? 生成自定义是如何改变.vcxproj项目文件的?项目文件的变化又是如何导致生成过程的改变的?(简单介绍了Build原理) 文中图文并茂展示了不使用VS IDE,在命令行运行MSBuild生成可执行文件的详细过程,说明了VS项目文件夹下,哪些文件是VS生成的,哪些是MSBuild过程生成的,等等。

2023-08-17

Excel 调用金蝶云星空WebAPi.zip

个人原创并亲自调试成功,通过VBA调用金蝶K3/CLOUD WebAPI读取任意行物料编码和物料名称到Excel表中,VBA无加密,完整源码。

2020-06-05

通达信选股插件源码及DLL

通达信提供了DLL插件接口和DLL指标接口标准,但写得很晦涩,不容易理解。 本示例采用VC++编译生成MyPlugin.dll,将其拷贝到通达信安装目录下的Plugin文件夹下,然后在通达信软件中选择“功能”菜单下的“选股器”->“插件选股”进行选股操作。选出的股票将同时记录在D:\选股.txt文件中,通过这个接口,就可以实现和第三方的自动交易软件(如小闪客)交互,实现无人值守全自动交易。 本示例包含C++源码完整文件,代码中提供了丰富的注释,便于学习掌握通达信API开发机制。 所附示例功能仅供学习研究使用,其选股思路只包含了均线金叉这一项指标,选出的股票进攻验证程序功能,据此投资风险完全由使用者承担。 本示例免费传播,请保留完整信息。进一步开发进行中,将根据进度在合适网络公布。

2015-05-09

通达信DLL选股插件源码及详细教程

通达信提供了DLL插件接口和DLL指标接口标准(见“插件编程规范-通达信原版文件”),但说明晦涩,不容易理解。 经过测试,将原示例代码做了注释,并修正了原来代码的一处错误(主要见MyPlugin.cpp)。 只要明白了道理,剩下的工作就看个人发挥了! 所附示例功能还非常简单,只是为了说明编程方法,距实际应用还有非常大的距离。如果据此投资,风险自负。 本示例免费传播,请保留完整信息。进一步开发进行中,将根据进度在合适网络公布。 本示例提到小闪客自动交易软件,但并不是为其做宣传广告,我本人也是在用其试用版,只是为测试功能。 小闪客和通达信均为各自公司版权,如有冒犯,请第一时间通知本人,将立即采取挽救措施。

2015-05-08

例会会议纪要模板及使用说明

通过VBA宏应用,基于Excel开发的高效会议纪要管理系统,可以实现历史任务完成后自动存档,被取消的任务自动存档,存档任务密码保护,到期未完成任务自动提醒,自动按周存档等功能,经十余年外企实际使用效果良好。

2015-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除