c/c++
rznice
这个作者很懒,什么都没留下…
展开
-
RHEL7/CENTOS7编译安装支持PYTHON脚本的GDB8.3.1
首先需要安装以下依赖:yum install python-devel expat-devel expat ncurses-devel ncurses下载GBD8.3.1的源码并解压./configure --with-pythonmake -j16make install进行安装,安装完可以安装GDB插件GEF,参看官网安装方法:https://gef.readthedoc...原创 2019-12-17 10:33:35 · 668 阅读 · 0 评论 -
C++ - explicit在构造函数的使用 及 详解
explicit的主要用法就是放在单参数的构造函数中,防止隐式转换, 导致函数的入口参数, 出现歧义.如果可以使用A构造B,未加explicit的构造函数, 当使用B进行参数处理时, 就可以使用A, 使得接口混乱.为了避免这种情况, 使用explicit避免隐式构造, 只能通过显示(explicit)构造.下面是代码, 仔细阅读必有收获, 可以试着删除explicit, 调用注释转载 2014-04-01 17:36:57 · 838 阅读 · 0 评论 -
在JavaScript 调用C++
方案一: // html & JavaScript... ... // C++: 响应 的消息函数OnBeforeNavigat2 virtual void OnBeforeNavigate2( LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName转载 2014-08-05 00:40:04 · 2401 阅读 · 0 评论 -
从C调用JavaScript函数代码。
有时候,当我们正在使用的C内的IE浏览器控制+ +应用程序,我们需要访问HTML元素。我们可以通过使用诸如IWebBrowser2,IHTMLDocument2标准的COM对象它,等等。这样,我们很容易可以实现如点击按钮,单击定位,获得输入的字符串,获取HTML文本功能,等等。不幸的是,微软并没有提供类似的JavaScript对象。在任何情况下,它可以通过使用传统的COM方式为HTML页内转载 2014-08-05 00:43:24 · 5016 阅读 · 0 评论 -
.net下调用c/c++的dll
首先用vs2013创建一个dll。dll的头文件如下:#ifdef CDLL_EXPORTS#define CDLL_API __declspec(dllexport)#else#define CDLL_API __declspec(dllimport)#endif#ifdef __cplusplusextern "C" {#endif CDLL_API int adds原创 2015-01-04 15:19:53 · 3177 阅读 · 0 评论 -
CentOS 6.X安装GCC
CentOS 6.X安装GCC原创 2016-03-14 17:27:24 · 4162 阅读 · 0 评论 -
利用gsoap将wsdl方式的WebService生成c/c++的接口
利用gsoap将wsdl方式的WebService生成c/c++的接口原创 2017-02-10 16:35:04 · 6571 阅读 · 1 评论 -
.net下通过委托调用c++ 的dll文件中的回调函数
.net下通过委托调用c++ 的dll文件中的回调函数原创 2017-07-10 17:35:55 · 475 阅读 · 0 评论 -
C++使用ocilib直连oracle
C++使用ocilib直连oracle原创 2017-07-05 17:54:55 · 5885 阅读 · 3 评论 -
C++对象继承
windows下,vs2017 C++代码: 1、类中没有虚函数:class Base{public: int x=1; int b=2; Base() { x = 3; b = 4; } void b_test1() { printf("b_test1\n"); }}...原创 2018-04-15 14:35:22 · 512 阅读 · 0 评论 -
Linux下使用ocilib连接数据库出现乱码的解决办法
OS:Red Hat Enterprise Linux Server release 7.6 (Maipo)Oracle 客户端版本:12.2.0.1OCILIB 版本:4.2本机环境env | grep -i langLANG=en_US.UTF-8GDM_LANG=en_US.UTF-8Oracle Server端字符集:使用 SELECT * FROM NLS_DATAB...原创 2019-06-20 14:38:09 · 1213 阅读 · 0 评论 -
Linux下OCILIB编译安装
OS:Red Hat Enterprise Linux Server release 7.6 (Maipo)GCC VERSION: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)下载OCILIB源文件,OCILIB项目地址:https://github.com/vrogier/ocilib当前最新版本为:4.6.2并解压,解压目录为: $OCILI...原创 2019-06-21 10:23:54 · 1518 阅读 · 0 评论 -
指向类成员的指针并非指针
对于指向类成员的指针,必须紧记,指向类成员(非static)的指针并非指针。 1、与常规指针不同,一个指向成员的指针并不指向一个具体的内存位置,它指向的是一个类的特定成员,而不是指向特定对象里的特定成员。通常最清晰的做法,是将指向数据成员的指针看作为一个偏移量。这个偏移量告诉你,一个特定成员的位置距离对象的起点有多少个字节。 2、转载 2014-02-04 00:33:22 · 704 阅读 · 0 评论 -
codeblocks中用第三方库
第一步:编译第三方库,得到头文件和库,例如路径关系:D:\MyLib\includeD:\MyLib\lib在include中放头文件,在lib中放置库文件。第二步:创建全局变量,菜单:Settings > Global variables, New一个新的,选名字,例如MYLIBBase: D:\MyLibinclude: $(BASE)\includelib:转载 2014-01-10 15:37:43 · 10298 阅读 · 0 评论 -
C++ 多继承和虚继承的内存布局
在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的不太明确的结论(尤其是,关于向下转型指针,使用指向指针的指针,还有虚拟基类的构造方法的调用命令)。 如果你了解多重继承是如何实现的,你就能预见到这些结论并运用到你的代码中。而且,如果你关心性能,理解虚拟继承的开销也是非常有用转载 2013-11-04 13:00:52 · 835 阅读 · 0 评论 -
C语言中类型转换
最近在看有关C语言的东西。看的过程中遇到些问题。想了好久才弄明白了。于是做下记录。下面是一个最简单的c语言程序:所使用的编译器是: turboc 2.0main(){ int i; int j; int k; scanf("%d %d",&i,&j); printf("%d \n",i+j); k=(int)&i; (char)i=300; printf原创 2011-08-04 14:40:38 · 863 阅读 · 0 评论 -
About Servers and Clients
There are two distinct types of socket network applications: Server and Client.Servers and Clients have different behaviors; therefore, the process of creating them is different. What follows is the转载 2012-10-08 22:29:30 · 815 阅读 · 0 评论 -
指针数组与数组指针
我说的很直白,简单易懂,给在迷茫的孩子和自己总结与复习。这是我在华清培训的时候老师讲的一道题,老师讲的我想哭,后来自己想了想下面这个是一个比较经典的例子main(){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5转载 2012-10-09 23:34:18 · 645 阅读 · 0 评论 -
C++虚指针实现及效率
单继承虚函数例子classPoint {public:virtual~Point();virtualPoint& mult( float ) = 0; //... other operations ...floatx() const { return _x; }virtualfloat y() const { return 0转载 2012-10-09 23:28:24 · 1659 阅读 · 0 评论 -
指针访问与数组访问的效率分析
很多人都知道指针访问比数组访问效率高, 但很少人明白其中的原理, 这篇文章从汇编级别上分析一下原因.我用一个"reverse"函数来作为例子, 分别用指针和数组的形式来实现这个函数.[cpp] view plaincopy//指针访问 void reverse(char *pStr,int nLen) { char *pStart=pStr;//指向字符转载 2012-10-09 23:37:15 · 1167 阅读 · 0 评论 -
数组,指针,数组指针
先看下下面这个例子: Inta[5]; 定义一个数组,其包含了5个int型的数据,我们可以用a[0],a[1]等来访问数组里面的每一个元素。这里的a[0],a[1]等为a的元素,但并非元素的名字。数组的每一个元素都是没有名字的。 Sizeof(a)的值为sizeof(int)*5,32位系统下为20,数组的长度。 Sizeof(a[0])的值为sizeof(int),32位系统下原创 2012-10-15 23:02:12 · 785 阅读 · 0 评论 -
cc 编译头文件
头文件信息:List.h#ifndef _List_h#define _List_h#include #include #endiftypedef struct Node{ struct Node *next; int value;} Node;int ins_Node(Node ** cn,int value);Node * InitNode(int原创 2012-10-20 00:33:21 · 2463 阅读 · 0 评论 -
函数指针,函数指针数组,函数指针数组的指针
函数指针的使用先看如下例子:#include #include char * fun(char * p1,char * p2){ int i = 0; i = strcmp(p1,p2); if (0 == i) { return p1;//返回值为指针类型,所以函数也要为指针型 } else { return p2; }}int main(){ p转载 2013-02-17 22:21:17 · 688 阅读 · 0 评论 -
使用 OCILIB 连接并操作 Oracle 数据库
OCILIB是一个跨平台的Oracle驱动程序,可提供非常快速和可靠地访问Oracle数据库。它提供了一个丰富,功能齐全,并易于使用的API 。OCILIB 支持运行的所有Oracle平台。#include "ocilib.h" int main(int argc, char *argv[]){ OCI_Connection* cn; OCI_Statement* st;转载 2013-02-24 23:08:51 · 3853 阅读 · 0 评论 -
const与类成员函数
既然类的实例是个对象,那么它也应该可以被const修饰。按照const的定义,const SampleClass foo_const;与SampleClass foo;并不是同样的东西。简单来说,foo_const不能被改变,显然也就是它的字段不能被改变。那么普通的对象foo能做的事情foo_const是不是也能做呢。例如,我们的类是这样的class SampleClass转载 2013-08-15 23:01:09 · 763 阅读 · 0 评论 -
通过OCCI操作Oracle数据库详解
1.简介 OCCI 即 Oracle C++ Call Interface 在Windows下访问Oracle数据库可以使用ADO,ADO.Net,OLEDB,ODBC,跨平台的OCCI等方法,其中速度最快,对Oracle支持最完整的是Oracle提供的OCCI. 2.安装OCCI SDK OCCI SDK包含在Oracle客户端中,在如下位置转载 2013-09-10 09:23:05 · 8809 阅读 · 1 评论 -
C,C++中使用可变参数
可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载)。在C#中有专门的关键字parame,但在C,C++并没有类似的语法,不过幸好提供这方面的处理函数,本文将重点转载 2012-06-28 17:53:40 · 639 阅读 · 0 评论