上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 31 下一页
  2012年7月10日
摘要: _tmaindoes not exist in C++.maindoes._tmainis a Microsoft extension.mainis, according to the C++ standard, the program's entry point. It has one of these two signatures:int main();int main(int argc,char* argv[]);Microsoft has added a wmain which replaces the second signature with this:int wmain( 阅读全文
posted @ 2012-07-10 19:04 kkmm 阅读(405) 评论(0) 推荐(0) 编辑
  2012年7月5日
摘要: 我在VS2005下写C++的程序,采用一个工程生成DLL文件给另一个工程执行,但每次执行时都出现 error LNK2019: 无法解析的外部符号 "__declspec(dllimport)错误。检查了好几遍代码都觉得没有问题。最后发现是字符集出现问题。生成DLL文件的字符集是Unicode而生成exe文件的字符集为默认的ASCII。只要统一字符集即可解决问题:VS2005的c++项目默认字符集是使用 Unicode 字符集,在项目属性->配置属性-->常规->项目默认值->字符集中设置字符集即可。补充VC6.0是默认采用ASCII字符集的。 阅读全文
posted @ 2012-07-05 11:32 kkmm 阅读(20817) 评论(2) 推荐(1) 编辑
摘要: 第一次使用VS2010,也是初学者开始编写VC++,程序首先学习编写DLL文件,编译完自己的DLL文件后,要在其它项目中使用,开始遇到很多错,但是在网上搜索了好久后,终于解决了问题。1、H文件目录:依次点击“项目——XX 属性——C/C++——常规”,在“附加包含目录”中加入H文件所在的文件夹2、LIB目录:依次点击“项目——XX 属性——链接器——常规”,在“附加库目录”中加入LIB所在目录3、还没完,在“链接器”中找到“输入”,在“附加依赖项”中加入abc.lib或用#pragma comment(lib,"abc.lib") 阅读全文
posted @ 2012-07-05 11:30 kkmm 阅读(960) 评论(0) 推荐(0) 编辑
  2012年7月4日
摘要: 无法解析的外部符号的几种可能 1. lib 文件未引入。可使用“#pragma comment(lib, “winsock.lib”) ”语句添加 lib 引用,也可在项目依赖里添加。2. 类方法的实现未加类标识。如, “CTest::Connect(void) { … }” 写成了 “Connect(void) { … }”。3. 缺少 obj 文件。在项目里添加“包含路径”:C:/curl/lib/release-dll/*.obj。4. 没有将项目需要的头文件、源文件都加入项目中,这个错误我犯了好几次。另外的一些解析:当用Visual Studio 链接程序时,往往会产生”无法解析的外部 阅读全文
posted @ 2012-07-04 18:50 kkmm 阅读(21716) 评论(0) 推荐(1) 编辑
摘要: 这阵子在想一个需要利用com组件的小程序怎么做,突然想起上次去面试的时候考官问过autocad开发时为什么要利用com,而不采用一般的dll呢? 到google上查了一下,许多人也问了一样的问题:) 用com来写程序要比普通的dll麻烦一些,但是带来的好处也大很多,尤其是在开发像autocad这样大型软件的时候,需要跨区域来协同工作。 “学习COM,首先要知道COM的目的是什么,它解决了一个什么样的问题,在此基础上,MS提供了各式各样的可扩展的COM服务,COM编程接口。这些服务和接口恐怕一个程序员一辈子都不可能通晓,因为发展是如此之快。大家也没有必要通晓这些接口,就象对待大量的WIN ... 阅读全文
posted @ 2012-07-04 16:33 kkmm 阅读(9241) 评论(1) 推荐(2) 编辑
  2012年6月13日
摘要: MSDN上的Mutex代码及其执行结果#include <windows.h>#include <stdio.h>#define THREADCOUNT 2HANDLE ghMutex; DWORD WINAPI WriteToDatabase( LPVOID );int main( void ){ HANDLE aThread[THREADCOUNT]; DWORD ThreadID; int i; // Create a mutex with no initial owner ghMutex = CreateMutex( NULL, ... 阅读全文
posted @ 2012-06-13 20:55 kkmm 阅读(524) 评论(0) 推荐(0) 编辑
  2012年6月12日
摘要: 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:1.线程ID每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标识线程。2.寄存器组的值由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便将来该线程在被重新切换到时能得以恢复。3.线程的堆栈堆栈是保证线程独立运行所必须的。线程函数 阅读全文
posted @ 2012-06-12 22:45 kkmm 阅读(568) 评论(0) 推荐(0) 编辑
  2012年5月29日
摘要: 1回顶部一.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo() { cout << "B::foo() is called" <<endl;}}; 那么,在使用的时候,我们可以:A * a 阅读全文
posted @ 2012-05-29 09:45 kkmm 阅读(211) 评论(0) 推荐(0) 编辑
  2012年5月17日
摘要: 一,static和extern: 大工程下我们会碰到很多源文件。 文件a.cstatic int i; //只在a文件中用int j; //在工程里用static void init() //只在a文件中用{}void callme() //在工程中用{ static int sum;}上面的全局i变量和init()函数只能用在a.c文件中,全局变量sum的作用域只在callme里。变量j和函数callme()的全局限扩充到整个工程文件。所以可以在下面的b.c中用extern关键字调用。extern告诉编译器这个变量或者函数在其他文件里已经被定义了。文件b.cextern int j; /.. 阅读全文
posted @ 2012-05-17 16:30 kkmm 阅读(231) 评论(0) 推荐(0) 编辑
  2012年5月9日
摘要: 正文 问题是这样的……相信下面这个程序凡是会写C++程序的同仁都认得,估计学会的第一个C++程序就是它了吧://---------------------------------------------- // 水之真谛 // http://blog.csdn.net/FantasiaX //---------------------------------------------- #include<iostream> int main(int argc, char *argv[]) { std::cout << "Hello, World." & 阅读全文
posted @ 2012-05-09 15:01 kkmm 阅读(1817) 评论(0) 推荐(0) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 31 下一页