最近的文章列表

C++中如何判断template类型

在C++中,使用template,有时候可能会需要得到当前所使用的类型.

本文中使用两种办法来。

TT类为使用模板的类,

2014/6/16 Comments:
[分享]ubuntu12.04使用c编写php扩展模块教程

系统是ubuntu 12.04,已经安装好了apache和php,php的版本是5.3.10。

以下操作如果碰到权限方面的问题,建议切换成root操作。

1、下载源码

签出php 5.3.10的源代码

代码如下:

$ svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_3_10/

Tips:如果没有这个命令,

2014/1/17 Comments:
如何理解c和c++的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。  我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的右左法则。  需要强调一下的是,复杂的C/C++声明并不是好的编程风格;我这里仅仅是教你如何去理解这些声明。注意:为了保证能够在同一行上显示代码和相关注释,本文最好在至少1024x768分辨率的显示器上阅读。让我们从一个非常简单的例子开始,如下:int n;这个应该被理解为declare n as an int(n是一个int型的变量)。接下去来看一下指针变量,如下:int
2011/6/14 Comments:
编写C++非托管DLL以及在.NET托管中调用
编写C++非托管DLL以及在.NET托管中调用 新建项目,来到Win32,点击Win32项目输入名称MyVC点击确定。应用程序类型,勾选DLL,点击完成。 MyVC.cpp #include "stdafx.h"#include <stdio.h> extern "C" __declspec(dllexport) int Max(int a,int b){ return a>b?a:b;}extern "C" __declspec(dllexport) int Min(int a,int b){ return a>b?b:a;} //此示例来自CSDNextern "
2011/5/14 Comments:
MSDN中回调函数的讲解及其C#例子:用委托实现回调函数
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconusingcallbackfunctions.htm回调函数是托管应用程序中可帮助非托管 DLL 函数完成任务的代码。对回调函数的调用将从托管应用程序中,通过一个 DLL 函数,间接地传递给托管实现。在用平台调用调用的多种 DLL 函数中,有些函数要求正确地运行托管代码中的回调函数。本主题将介绍托管函数的元素,并说明如何实现回调函数和从托管代码中调用回调函数。回调函数基础要从托管代码中调用大多数 DLL 函数,可创建该函数的托管定义,然后调用该函数。此过程比较直接。要使用需要回调函数的 DLL 函数,则会有一些附加的步骤。首先,必须在文档中查阅该函数,确定该函数是否需要回调。接着,必须在托
2011/5/14 Comments:
c#调用c++dll时,结构体长度,占位符定义
#region 占位符定义 public struct Byte4 { byte b1, b2, b3, b4; } public struct Byte8 { Byte4 dummy1, dummy2; } public struct Byte16 { Byte8 dummy1, dummy2; } public struct Byte32 { Byte16 dummy1, dummy2; } public struct Byte64 { Byte32 dummy1, dummy2; } public struct Byte100 { Byte64 dummy1; Byte32 du
2011/4/8 Comments:
c#(c++) struct 变量 到 byte[] 变量的转换操作
如果能将 struct 变量 实例转换成byte [] 类型,则可以方便我们将变量存储传递压缩等。以下是我的一个初步实现using System.Runtime.InteropServices;#region 需要转换的结构 [StructLayout(LayoutKind.Sequential, Pack=1)]//struTest变量在内存中的对齐方式 (指针类型转换成功的必要条件) public struct struTest{ public int intId; public int intName; public DateTime dtBegintime; } #endregion/// <summary> /// xamConverter 的摘要说明。 特定结
2011/3/31 Comments:
C#(C++,dll)结构体数组间的转化之定义结构体和byte数组转结构体
解决C#结构体数组间的转化问题的由来:在写C#TCP通信程序时,发送数据时,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,要在C#中发送结构体,可以按以下方法实现:(1)解决C#结构体数组间的转化之定义结构体://命名空间 using System.Runtime.InteropServices; //注意这个属性不能少 [StructLayoutAttribute( LayoutKind.Sequential, CharSet=CharSet.Ansi,Pack=1)] struct TestStruct ...{ public int c; /
2011/3/31 Comments:
c#(c++/c DLL)尝试读取或写入受保护的内存,这通常指示其他内存已损坏
C#调用非托管DLL中的API: LONG APIENTRY devwdm_GetImageBuffer(BYTE *pImageMem); 函数功能: 采集一帧RGB24图像到内存 pImageMem: 图像缓冲区指针C#调用: C# code[DllImport("devwdm.dll")]public static extern int devwdm_GetImageBuffer(IntPtr pImageMem);于是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。求助于大家,根据大家的意见,把API中的 BYTE* 转换到C#中,分别用 byte[] 、IntPtr 、ref byte[]、 ...甚至用unsafe了,可是还是报错,有人说内存不
2011/3/29 Comments:
如何使用MarshalAs Unmanaged
UnmanagedType 枚举此 API 支持 .NET Framework 基础结构,不适合在代码中直接使用。指定如何将参数或字段封送到非托管代码。命名空间: System.Runtime.InteropServices程序集: mscorlib(在 mscorlib.dll 中)[ComVisibleAttribute(true)]public enum UnmanagedType成员名称说明Bool4 字节布尔值(true != 0、false = 0)。这是 Win32 BOOL 类型。I1 bool(true = 1、false = 0)。U11 字节无符号整数。I22 字节带符号整数。U22 字节无符号整数。I44 字节有符号整数。U44 字节无符号整数。I88 字节有符号
2011/3/25 Comments: