C++
文章平均质量分 71
windren06
这个作者很懒,什么都没留下…
展开
-
标准字符串std::string和System::String, CString之间的转换
1. std::string 转成System.String#include #include using namespace System;using namespace std;int main() { string str = "test"; cout << str << endl; String^ str2 = gcnew String(st转载 2012-08-07 17:46:29 · 18041 阅读 · 0 评论 -
堆内存和栈内存详解
堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式转载 2013-12-04 18:02:01 · 780 阅读 · 0 评论 -
malloc free失败
今天遇到C语言的malloc free失败问题,因为工程代码量巨大,定位了半天才发现是DLL的问题,动态链接库里malloc分配的内存,到主程序中free时崩溃失败。起初以为是指针越界好或被修改,后来直接改成申请后就free,直接失败,于是就怀疑是DLL与主程序之间的调用问题。于是总结一下常见失败问题方便后来者参考。一、指针未初始化就free失败该free错误非常容易定位,也就是一个指针没转载 2013-09-04 16:26:18 · 3087 阅读 · 0 评论 -
c++ 普通全局变量与指针类型的对象变量 应用区别
这里举例一下MFC中的CPtrArray类,他是CObject类型指针对象的集合。通过int Add( CObject* newElement );注意参数是一个指针类型)可以向集合中添加元素。首先我们定义一个CPtrArray类型的对象。CPtrArray pArray;//他是一个全局对象先设定一个举例的类类型。如:01class A转载 2012-11-01 11:49:37 · 3426 阅读 · 0 评论 -
C# XDocument.Parse 保留空格space
一直以来在解析xml或者html的时候,都是直接Xdocument.Parse(string text),然后取Node什么的;最近遇到一个问题,解析的xml文章取出之后,英文空格都没有了,单词都合并到了一起。Debug了下发现text在Parse前后,space都没有了。于是MSDN查了下XDocument.Parse,遗漏了LoadOptions.PreserveWhitesp原创 2012-08-27 12:08:20 · 2781 阅读 · 0 评论 -
获取文件大小的方法
在程序设计当中,我们可能要获得指定文件的大小。经过我在网上搜索,已经发现有三种方法可以获取文件的大小。一、通过 CFile 类的成员函数 GetLength 获取文件大小;二、通过 CFileFind 类的成员函数 GetLength 获取文件大小;下面详细说明这两种方法:一、CFile 类1、通过 Open 成员函数打开文件;2、通过 GetLength 成员函数获取文件转载 2011-02-16 14:17:00 · 1919 阅读 · 0 评论 -
解决#error : WINDOWS.H already included.
: fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include 我是在windows console下编译 枚举局域网主机名及其ip 的时候遇到这个问题的 #include "winsock2.h "#include //因为要用到CString所以要包含这个头文件#原创 2011-02-19 11:25:00 · 1261 阅读 · 0 评论 -
nchar,char,varchar与nvarchar区别
char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。 Varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它原创 2011-05-16 11:31:00 · 525 阅读 · 0 评论 -
检查C++内存泄露的方法
怎样检查你的代码有没有内存泄露呢? 需要在前面加上这些代码:#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#include转载 2011-02-19 11:35:00 · 660 阅读 · 0 评论 -
C#调用C++的DLL搜集整理的所有数据类型转换方式
本以为这篇搜集整理的代码会是很不错的文章,花了一天时间,搜索到最后居然出来一篇叫做"C# 与 C++ 数据类型对照表"的文章.几乎囊括掉和大部分的数据了,太打击我了. 本文中有部分的数据没有测试.也有一些不错的是看了上百篇网文对比整理得来的.希望有帮助.//C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(c原创 2011-07-13 18:55:38 · 777 阅读 · 0 评论 -
C++ 调用c#DLL函数
自己实践了一下,其实不是很难,怕自己忘记掉,再加上有几个需要注意的问题,这里记录下来。1. c# 创建dll library using System;using System.Collections.Generic;using System.Text;namespace AddDll{ public class Add {原创 2012-08-07 16:51:26 · 1072 阅读 · 0 评论 -
compress函数与uncompress函数
compress函数与uncompress函数zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性(integrity)。zlib也支持读写 gzip (.gz) 格式的文件。下面介绍两个最有用的函数——compress 和 uncompress。 int compres原创 2011-02-22 17:39:00 · 937 阅读 · 0 评论 -
CString常用方法简介
CString常用方法简介CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" );原创 2011-02-23 11:51:00 · 522 阅读 · 0 评论 -
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main在创建MFC项目时,如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如我今天遇到的:LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main原创 2011-02-23 16:19:00 · 1335 阅读 · 0 评论 -
OnInitDialog和OnShowWindow的不同与使用范围
CDialog::OnInitDialog 调用这个成员函数是对WM_INITDIALOG消息作出的反应。这条消息是在对话框即将显示之前,在Create ,CreateIndirect或DoModal调用期间发出的。如果在对话框初始化后需要执行特别处理,覆盖该函数。首先调用基类OnInitDialog,但不考虑其返回值。正常情况下,覆盖的函数返回TRUE。Windows调用OnInitDial原创 2011-03-21 13:58:00 · 9739 阅读 · 2 评论 -
在C#调用C++的DLL简析(一)——生成非托管dll
经过一晚上的折腾,还是下点决心将些许的心得写下来,以免以后重复劳动。C#与C/C++相比,前者的优势在于UI,后者的优势在于算法,C++下的指针虽然恶心,若使用得当还是相当方便的,最重要的问题是,市面上很多流行的开发工具库,几乎没有不支持C++的,但全面支持C#只能说是难得,在CPU发展到今天,若说C#的执行效率跟C++相比有很大的差距并不是那么靠谱,若非万不得已我还是宁愿用C转载 2014-01-04 13:04:14 · 5911 阅读 · 0 评论