1. UNICODE项目下,字符串用L是可以的,但项目再转成 多字节编码时, L就不能编译通过
2. 如果用_T() 或 _TEXT()则可以在UINCODE和多字节编码项目下 都 可以无修改编译通过
1. UNICODE项目下,字符串用L是可以的,但项目再转成 多字节编码时, L就不能编译通过
2. 如果用_T() 或 _TEXT()则可以在UINCODE和多字节编码项目下 都 可以无修改编译通过
调用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语言十进制转二进制(移位法)
#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;
}
问题:
Error 6 initializing SQL*PLUS.
Message file spl .msb not found.
SP2-0750:You may need to set ORACLE_HOME to your Oracle software directory.
同时PLSQL Developer登陆界面数据库下拉列表没有可选连接名
解决方法:
控制台–>set ORACLE_HOME=D:/ORACLE/ORA92 (这里改为你的ORA92目录即可)
http://share.zcool.com.cn/thread-23622-5-1.html###zoom
PHP开发:
wamp+MySQL Tools for 5.0
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;
}
注意,只有指针的引用(*&)
没有引用的指针这么一说,引用的指针(&*)编译也是绝不可能通过的
指针的引用,代码如下:
#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* 的引用
假定ORACLE安装目录为D:/oracle/
工具–>选项–>项目和解决方案–>VC++目录
可执行文件 D:/oracle/ora90/BIN
包含文件 D:/oracle/ora90/precomp/public
库文件 D:/oracle/ora90/precomp/lib/msvc
确定–>重启VS–>OK
一个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结束进程。
今天脑子抽风,突然分不清ostringstream为什么叫输出, istringstream为什么叫输入.
抽过之后,做出如下总结,以防再抽.
输入输出是针对std::string而言的
输出流:格式化以后输出到std::string
输入流:绑定std::string str之后把str里的一个word输入到另一个std::string中,用于处理字符串
总结: 输入输出,站在流本身的角度来看。