摘要:调试方法:【dll工程和调用dll的exe工程在同一个解决方案中】dll工程,属性-配置属性-调试-把 命令 为 调用该dll的exe工程的bin\Debug\*.exedll工程,属性-配置属性-调试-把 调试器类型 设置为 仅限本机dll工程,属性-配置属性-常规-把输出目录设置为 调用该dll的exe工程的bin\Debug目录下在dll工程中打好断点,然后重新生成dll工程,为了输出dll到设置的目录下然后exe工程,属性-调试-启用非托管代码调试exe工程,设置为启动项目好了运行,OK上面的步骤是参考了网上很多资料总结出来的,可能有的设置没有用,不过反正全部设置OK了之后是肯定行的-
阅读全文
随笔分类 - C++/C
摘要:C++(Win 32)C#char**作为输入参数转为char[],通过Encoding类对这个string[]进行编码后得到的一个char[]作为输出参数转为byte[],通过Encoding类对这个byte[]进行解码,得到字符串C++ Dll接口:void CplusplusToCsharp(in char** AgentID, out char** AgentIP);C#中的声明:[DllImport("Example.dll")]public static extern void CplusplusToCsharp(char[] AgentID, byte[] A
阅读全文
摘要:什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。 定义结构体使用struct修饰符,例如: C++ 代码struct test { float a; int b; }; 上面的代码就定义了一个名为tes...
阅读全文
摘要:在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数。这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身。例如:[cpp] view plaincopyprint?voidchangeVar(intmyVar,intnewValue){myVar=newValue;}intmain(){intmyNum=20;changeVar(myNum,90);std::cout<<myNum<<endl;return0;}void changeVar(int myVar,int newValue){ myVa
阅读全文
摘要:演练:创建和使用动态链接库在本演练中,您将创建一个动态链接库 (DLL),其中包含可供其他应用程序使用的有用例程。使用 DLL 是一种重用代码的绝佳方式。您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。本演练使用本机 C++。有关使用本机 C++ 创建静态库的演练,请参见演练:创建和使用静态库。有关使用面向公共语言运行库的 Visual C++ 的演练,请参见演练:创建和使用托管程序集。本演练涵盖以下内容:创建新的动态链接库 (DLL) 项目向动态链接库添加类创建引用动态链接库的应用程序在控制台应用程序中使用类库的功能运行应用程序
阅读全文
摘要:设置VS2008和IE8 调试ATL控件VS2008设置篇:设置VS2008 通过IE8 调试ATL的ActiveX控件的步骤如下:(1)设置项目属性通过菜单项 “项目—》你的项目属性”如下图:(2)在弹出的属性页对话框中选中“配置属性—》调试”,在右边填入下列参数:命令:C:\Program Files\Internet Explorer\iexplore.exe(你的IE8执行文件位置)工作目录:$(InputDir)FileUploader.htm(其中FileUploader.htm更换成VS为你生成的Html文件名。附加:否。(指示调试器不要附加现有IE进程,而是新建一个)其它选项采
阅读全文
摘要:说明 $(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称(例如“Win32”)。$(Inherit)指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。$(NoInherit)使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用$(StopEvaluati
阅读全文
摘要:一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对独立的,在编 译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件a.cpp中定义 了一个全局函数“void a() {}”,而在文
阅读全文
摘要:这篇文章是我在学习高质量C++/C编程指南中的第7章"内存管理"后的一篇笔记,之前我也写过相关的文章指针以及内存分配,但我感觉那篇还不是很好,这篇我很把它更完善一些一.内存的常见分配方式 1. 从静态区分配,一般是全局变量和static类型变量 2.从栈区分配内存,一般是局部的变量,会随着所在函数的结束而自动释放 3.从堆中分配,一般是使用手动分配,使用malloc()函数和new来申请任意大小空间,不过要手动释放空间,相应的使用free()函数和delete释放, 如果不释放该空间,而且指向该空间的指针指向了别的空间.则该空间就无法释放,造成内存泄露,造成了内存浪费二.内
阅读全文
摘要:转载自IT168 [ http://www.it168.com/ ]第1页:创建ActiveX控件本文将首先介绍如何使用Visual Studio开发一个简单的ActiveX控件,然后介绍ActiveX控件开发相关的基础知识,比如方法,属性和事件等,最后介绍如何利用这些知识,实现ActiveX控件和网页页面之间的通信。MyActiveX控件的效果图简介 ActiveX是由Microsoft在90年代中期提出的一项技术。利用ActiveX技术,开发者可以创建像Java小程序applet一样的小型应 用程序。这些应用程序可以被下载然后在Microsoft的浏览器中运行。这篇文章是为那些想学习如何开
阅读全文
摘要:1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value of type size_t. 看到return这个字眼,是不是想到了函数?错 了,sizeof不是一个函数,你见过给一个函数传参数,而不加括号的吗?sizeof可以,所以sizeof不是函数。网上有人说sizeo...
阅读全文