![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
语言--C/C++/C#
喜欢雨天的我
爱技术,爱生活.
展开
-
androidNDK开发中c与C++的细小区别
#if defined(__cplusplus)//如果是C++语言 JNIEnv定义为JNIEnv 这么一个结构体typedef _JNIEnv JNIEnv;typedef _JavaVM JavaVM;#elsetypedef const struct JNINativeInterface* JNIEnv;//不是c++语言则 JNINativeInterface这么一个结构体typ原创 2016-12-06 17:26:14 · 1483 阅读 · 0 评论 -
C#中的 int?是什么意思
> C# 中 int?的含义代表了?就是一种特殊的值类型,它的值可以为null用于给变量设初值得时候,给变量(int类型)赋值为null,而不是0int??:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋役个新值,否则跳过 public int? a=null;public int b(){return this.a ?? 0;}语法 T? 是System.Nullabl原创 2017-05-19 11:02:09 · 2191 阅读 · 0 评论 -
sealed(C# )
如果类被声明为sealed封装模式,则不允许其他类来继承此类。否则会报错。// cs_sealed_keyword.csusing System;sealed class SealedClass{ public int x; public int y;}class MainClass{ static void Main() { Sealed原创 2017-05-19 10:54:17 · 821 阅读 · 0 评论 -
C++编写dll给C#用时候出现vhost.exe异常
从我个人项目中总结出现vhost.exe异常的原因在于编写dll中存在指针的问题,我传递的委托时间,我中转至一个指针内,但是我并没有对指针进行销毁,导致异常。–解决办法: 将委托事件再dll中,不通过指针引用。原创 2017-04-27 16:41:31 · 602 阅读 · 0 评论 -
PInvokeStackImbalance异常
异常截图今天出现的异常。异常分析引起这个异常的原因是因为我在编写C++的dll和C#的方法参数不匹配引起的。更换为对应支持的参数类型就回复正常。原创 2017-04-12 22:17:29 · 1537 阅读 · 0 评论 -
System.BadImageFormatException”类型的未经处理的异常在 xx.exe 中发生
自己做Dll时候,调用自己的方法时候,出现System.BadImageFormatException 此原因是由于 ” 目标程序的目标平台与 依赖项的目标编译平台不一致导致,把所有的项目都修改到同一目标平台下(X86、X64或AnyCPU)进行编译,一般即可解决问题“ 我将其平台改为对应于我DLL的平台 就没有出现问题。原创 2017-04-11 19:23:57 · 6059 阅读 · 4 评论 -
EntryPointNotFoundException
EntryPointNotFoundException此异常说明我们的DLL入口处找不到,但是我确实已经存放进去,为何找不到呢。后来经过度娘的指导。发现原来在生成dll后方法的签名有的会变。 —解决方法下载最新的 Dependency Walker 用来进行查看我们生成的Dll里面的函数签名。 为何会出现这种情况呢:因为修饰约定规则的影响。DLL(动态库)导出函数名乱码含义 C++编原创 2017-04-11 17:05:24 · 9253 阅读 · 2 评论 -
C/C++中的STL库
标准库模板 标准库模板(standard template library ,STL)支持不同的容器和算法。 STL提供了常量数据结构的实现,如链表和队列。当然在使用C++时候,并不需要我们再一次进行编写这样的数据结构。数据结构的实现使用了一个称为容器的概念。容器中保存的信息为元素,保存信息的方式能够正确地实现数据结构(链表和队列等)。不同的数据结构有不同的插入,删除和访问行为,而且性能特原创 2016-12-10 09:53:42 · 1906 阅读 · 0 评论 -
Visual Studio快捷键大全
Visual Studio 2013/2015最常用的快捷键大全字数376 阅读747 评论0 喜欢1强迫智能感知:Ctrl+J。智能感知是Visual Studio最大的亮点之一,选择Visual Studio恐怕不会没有这个原因。Paste_Image.png撤销:Ctrl+Z。除非你是天才,那么这个快捷键也是最常用的。转载 2016-07-25 12:45:32 · 1734 阅读 · 1 评论 -
Vistual Studio快捷键
程序调试相关的快捷键 说明 快捷键 备选 自动调整代码格式 先按Ctrl+K, 再按Ctrl+D 启动调试 F5 开始执行(不调试) Ctrl+F5 重启调试 Ctrl+Shift+F5 全部中断 Ctrl+Alt+Break 在不调试的情况下启用诊断工具 Alt+F2 查看代码 F7 切原创 2016-09-25 17:27:08 · 652 阅读 · 0 评论 -
智能指针
【TOC】正文1. 智能指针背后的设计思想我们先来看一个简单的例子:void remodel(std::string & str){ std::string * ps = new std::string(str); ... if (weird_thing()) throw exception(); str = *ps; delete ps;原创 2016-09-30 15:52:30 · 362 阅读 · 0 评论 -
C++笔记(上)
C和C++指针的最重要的区别在于:C++是一种类型要求更强的语言。就void *而言,这一点表现得更加突出。C虽然不允许随便地把一个类型的指针指派给另一个类型,但允许通过void *来实现。例如: bird* b;rock* r;void* v;v = r;b = v;C++不允许这样做,其编译器将会给出一个出错信息。如果真的想这样做,必须显式地使用映射,通知编译器和读者。参数传递准则原创 2016-09-30 15:54:29 · 381 阅读 · 0 评论 -
C++笔记(下)
宏的好处与坏处宏的好处:#与##的使用 三个有用的特征:字符串定义、字符串串联和标志粘贴。字符串定义的完成是用#指示,它容许设一个标识符并把它转化为字符串,然而字符串串联发生在当两个相邻的字符串没有分隔符时,在这种情况下字符串组合在一起。在写调试代码时,这两个特征是非常有效的。 #define DEBUG(X) cout<<#X " = " << X << endl上面的这个定义可以打印任原创 2016-09-30 15:56:57 · 377 阅读 · 0 评论 -
使用CallerMemberName简化InotifyPropertyChanged的实现
在WPF中,当我们需要通过MVVM的方法绑定一个普通对象的属性时候,我们的界面需要获取属性的变更通知。因此需要实现InotifyPropertyChanged接口的实现。class NotifyObject : INotifyPropertyChanged { private int number; public int Number {原创 2017-05-19 11:20:04 · 1635 阅读 · 0 评论