作者: admin

  • VC中, 关于UNICODE的L和_T()

    1.  UNICODE项目下,字符串用L是可以的,但项目再转成 多字节编码时, L就不能编译通过

    2.  如果用_T() 或 _TEXT()则可以在UINCODE和多字节编码项目下 都 可以无修改编译通过

  • 关于gethostname函数失败的问题

    调用gethostname函数失败。

    解决办法:调用gethostname之前, 要先调用WSAStartup才可以, 否则gethostname会失败!

    下面是正确的代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <Winsock2.h>
    #include <windows.h>
    #pragma comment(lib, "Ws2_32")
    int main()
    {
    	WSADATA wsData;
    	::WSAStartup(MAKEWORD(2,2), &wsData);
    	char szIP[32] = {0};
    	char szHostName[32] = {0};
    	int iResult = ::gethostname(szHostName, sizeof(szHostName));
    	if (iResult != 0)
    	{
    		printf("error/n");
    		return -1;
    	}
    	printf("%s/n", szHostName);
    	hostent *pHost = ::gethostbyname(szHostName);
    	::WSACleanup();
    	return 0;
    } 
  • C语言十进制转二进制(移位法)

    C语言十进制转二进制(移位法)

    #include <stdio.h>
    int main()
    {
    	char strBinary[sizeof(int)*8+1];
    	int a = 100;
    	// 让p指向strBinary的最后一位
    	char *p = strBinary + sizeof(int)*8;
    	*p = '/0';
    	while (a)
    	{
    		--p;
    		*p = (a & 1) + 0x30;	// 加0x30转变成字符
    		a >>= 1;	// 右移一位
    	}
    	printf("%s/n", p);
    	return 0;
    }
  • sqlplus启动问题

  • 好网址,记下来吧

    http://share.zcool.com.cn/thread-23622-5-1.html###zoom

    PHP开发:

    wamp+MySQL Tools for 5.0

  • 关于c++中const成员函数

    const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数.

    class CTest
    {
    public:
        CTest(const CTest& t) // 这里t是const修饰的类的引用,它所调用到的方法应该是const成员函数
        {
            a = t.Fun(); 
        }
        int Fun()  // const成员函数
        {
            return a;
        }
    private:
        int a;
    };
    int main()
    {
        return 0;
    }
  • 关于C++指针的引用

    注意,只有指针的引用(*&)

    没有引用的指针这么一说,引用的指针(&*)编译也是绝不可能通过的

    指针的引用,代码如下:

    #include <iostream>
    using namespace std;
    class A
    {
    public:
        int m_a;
    };
    void f(A * &a)
    {
        cout << (a)->m_a << endl;
    }
    int main()
    {
        A a;
        a.m_a = 88;
        A *p = &a;
        f(p);
        return 0;
    }

    分析的时候从右向左分析
    f(A * &a)
    先是 & , 表明这是一个引用
    然后是 *
    表明这是一个指向 A* 的引用

  • 配置VC++使用PROC

    假定ORACLE安装目录为D:/oracle/

    工具–>选项–>项目和解决方案–>VC++目录

    可执行文件 D:/oracle/ora90/BIN
    包含文件 D:/oracle/ora90/precomp/public
    库文件 D:/oracle/ora90/precomp/lib/msvc

    确定–>重启VS–>OK

  • C++应用程序在Windows上的启动过程

    一个C++应用程序的启动过程:

    其实是系统调用CRT,然后CRT调用的WinMain.

    a.shell调用CreateProcess激活App.exe
    b.系统产生一个进程内核对象,使用计数值加1
    c.系统为此进程产生4GB的地址空间
    d.加载器将必要的码加载到上述地址空间中,包括App.exe的程序,资料以及所需要的dll。它们被记录在可执行文件PE格式的.idata section中。
    e.系统为此进程建立一个执行线程,即主线程。执行线程才是CPU时间的分配对象。
    f.系统调用C Runtime函数库的StartUp code
    g.startup code调用APP程序的WinMain函数
    h.APP程序开始运作
    i.使用者关闭APP,退出消息循环,退出WinMain函数
    j.返回到startup code
    k.返回到系统,系统调用ExitProcess结束进程。

  • C++中ostringstream和istringstream的理解

    今天脑子抽风,突然分不清ostringstream为什么叫输出, istringstream为什么叫输入.

    抽过之后,做出如下总结,以防再抽.

    输入输出是针对std::string而言的
    输出流:格式化以后输出到std::string
    输入流:绑定std::string str之后把str里的一个word输入到另一个std::string中,用于处理字符串

    总结: 输入输出,站在流本身的角度来看。