博文
VC中的error LNK2001: unresolved external s(2013-05-01 14:41:00)
摘要:
VC中的error LNK2001: unresolved external symbol _main的解决办法
自己在vc中编了个小程序,然后把程序#if 0 #endif 掉后,编译,链接时老是提示如下:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved
external symbol _main
Debug/Point.exe : fatal error LNK1120: 1
unresolved externals
Error executing link.exe.
Point.exe - 2 error(s), 0 warning(s)
难过啊,为什么??
有人说:看上去,你应该是建立了一个控制台工程,但是你没有定义main函数,所以会出现这样的错误。写个main函数。
有人说:
要修改[Project] --> [Settings] -->
选择"Link"属性页,在Project
Options中将/subsystem:console改成/subsystem:windows ,我改了之后就成以下这样的错误了
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _W......
线程同步能避免出现“race conditions”(竞争条件)和“data c(2013-01-26 09:24:00)
摘要:
线程同步能避免出现“race conditions”(竞争条件)和“data corruption”(数据破坏)的情况。
同步(synchronous)与异步(asynchronous)的定义:
当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续下去,这就是“同步”。
如果程序1调用程序2后,径自继续自己的下一个动作,那么两者之间就是“异步”。
Win32 API 中的SendMessage()是同步行为,而PostMessage()是异步行为。
win32中关于进程和线程的协调工作是由同步机制来完成的。同步机制相当于线程之间的红绿灯。
-----Critical Sections(关键区域、临界区域)
win32中最容易使用的同步机制就是critical sections.所谓critical sections意指一小块“用来处理一份被共享之资源
”的程序代码。这里的资源并不是来着.RES的Windows资源,而是广义地指一块内存、一个数据结构、一个文件,或任何其
他具有“使用之排他性”的东西。
为了防止问题的发生,一次只能有一个线程获准进入critical section中。实施的方式就是在程序中加上“进入”或“离
开”critical section的操作。
在win32中可以为一个需要保护的资源声明一个CRITICAL_SECTION类型的变量。这个变量扮演红绿灯的角色。
Critical section 并不是核心对象,没有handle这样的东西,它和核心对象不同,不存在进程的内存空间。你应该将一个
类型为CRITICAL_SECTION的局部变量初始化,方法是调用InitializeCriticalSection();
VOID InitializeCriticalSection(
LPCRITICAL_SECTION lpCriticalSection // critical section 一个指针,指向欲初始化的CRITICAL_SECTION变量
);
......
error lnk2019 __tmainCRTStartup(2012-02-01 17:38:00)
摘要: 不显示删除回复显示所有回复显示星级回复显示得分回复 error
LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 LIBCMT.lib [问题点数:50分,结帖人:honghaixiao]
honghaixiao
等 级: 结帖率:75.00%
楼主发表于:2008-09-06 15:15:43
错误 1 error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup
中被引用 LIBCMT.lib
这个错误怎么解决
在VS2005 下写DX的骨骼动画时遇到这个错误
class
CAllocateHierarchy :public
ID3DXAllocateHierarchy{}主要是继承了ID3DXAllocateHierarchy
在头文件中包含了
#include
"d3dx9.h"
#include "D3dx9anim.h"
包含库文件dxguid.lib d3dx9d.lib d3d9.lib
winmm.lib
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP
回复次数:8
zzz822163 (.)
等 级:
#1楼 得分:10回复于:2008-09-08 12:50:45
首先要看看工程建对了么,应该是win32
application
老版本MFC升级到现在版本VS2005的时候你的工程不再适合现在的程序!!
还有就是
入口函数选项要正确~~
还有就是没有链接到正确的库
对我有用[0]
丢个板砖[0......
C/C++语法知识:typedef struct 用法详解(2011-07-16 15:55:00)
摘要:第一篇:typedef struct与struct的区别
1. 基本解释
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。
至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。
2. typedef & 结构的问题
当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明:
typedef struct tagNode
{
char *pItem;
pNode pNext;
} *pNode;
答案与分析:
1、typedef的最简单使用
typedef long byte_4;
给已知数据类型long起个新名字,叫byte_4。
2、 typedef与结构结合使用
typedef struct tagMyStruct
{
int iNum;
long lLength;
} MyStruct;
这语句实际上完成两个操作:
1) 定义一个新的结构类型
struct tagMyStruct
{
int iNum;
long lLength;
};
分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。
我们可以用struct tagMyStruct varName来定义变量,但要注意,使用tagMyStruct varName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型。
2) typedef为这个新的结构起了一个名字,叫MyStruct。
typedef struct tagMyStruct MyStruct;
因此,My......
C++——头文件的作用(2010-11-05 23:24:00)
摘要:头文件
每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。
C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。
1.1 版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:
(1)版权信息。
(2)文件名称,标识符,摘要。
(3)当前版本号,作者/修改者,完成日期。
(4)版本历史信息。
/*
* Copyright (c) 2001,老妖工作室
* All rights reserved.
*
* 文件名称:filename.h
* 文件标识:见配置管理计划书
* 摘 要:简要描述本文件的内容
*
* 当前版本:1.1
* 作 者:输入作者(或修改者)名字
* 完成日期:2001年7月20日
*
* 取代版本:1.0
* 原作者 :输入原作者(或修改者)名字
* 完成日期:2001年5月10日
*/
示例1-1 版权和版本的声明
1.2 头文件的结构
头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明(参见示例1-1)。
(2)预处理块。
(3)函数和类结构声明等。
假设头文件名称为 graphics.h,头文件的结构参见示例1-2。
【规则1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。
【规则1-2-2】用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准......
c++ obj文件与exe文件的区别(2010-11-04 14:38:00)
摘要:编译:当前源代码编译成二进制目标文件(.obj文件)
链接(link):将生成的.obj文件与库文件.lib等文件链接,生成可执行文件(.exe文件)。
一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)......
学习c++的心得(2010-11-03 23:00:00)
摘要:我从去年11月份开始自学C++(本人现在做C#开发),现在把我这10来个月学习体会写
出来和大家分享。
1。关于要不要学习C++?(结论:要学,一定要学!)
如今在网上很多为要不要学C++争的不可开交,因为现在JAVA,C#,。NET都炒的很火,特
别是JAVA,大有炸平庐山,停止地球转动之势。用林锐同志的话说,其实JAVA只是C++外甥
,跑到舅舅身上撒了一泡尿而已。首先,我们从JAVA 的来历上来说,JAVA的设计初衷是用
来给家用电器设计程序使用的,最初设计者想用C++,但觉得C++太复杂,就在C++的基础上
做了一些简化,设计出了JAVA,它的设计思想是跨平台,所以必须先在运行平台上安装虚
拟机,然后把源程序编译成中间语言在运行。这是一个优点,但我们说任意优点都是建立
在缺点上的,JAVA的缺点就是运行速度慢,这对于某些系统来说是致命弱点。况且,JAVA
中没有指针,对于制作系统软件来说,这更是无法饶恕的。再来看C++。C++产生于美国贝
尔实验室,就是发明电话那个公司。设计初衷是用来改进C的开发效率,C是面向过程的语
言,开发效率底,贝尔实验室有大量的C程序员,所以只要在开发效率上提高一点点,就可
以节约数目庞大的成本。C是什么东西?是用来代替汇编编写操作系统的语言,用C++代替
C,可以得出两个结论:第一,C++必须具有同C相当的执行速度;第二,C++必须比C具有较
高的开发效率。执行速度方面,C++的设计者的思想就是在改进开发效率的同时尽量不增加C++的系统开销,当然有些地方非增加开销不可,也把开销控制在
最小程度内。具非权威研究报告,C++比C的执行开销多出不到10%。开发效率方面,C++引
进了面向对象机制,库机制,最大程度上实现了代码重用,这是软件开发人员的福音。C+
+在改进C的开发效率的同时,对C的缺陷做了一些修补。C的优点在C++中都得到了很好的保
留,C的缺点在C++中都有了改进,有了更好的解决办法。而且,为了现有的大量C程序维护
,C++还全面兼......
C++优秀经典教程推荐(2010-11-03 22:57:00)
摘要:写程序已经快两年了,学习C++,也一年有余了,除了感谢把我领进门的温文尔雅的孙毅师傅,还要感谢给了我无穷视界的几本C++经典。不过,还要感谢的一个人是一个内心卑微但又十分自我的苏林,他使我记住了耻辱。知耻而后勇嘛!
1. C++ Primer, 难度系数 0.2, 推荐指数 0.7
2. Effective C++, 难度系数 0.5, 推荐指数 0.9
3. More Effective C++, 难度系数 0.7, 推荐指数 0.9
4. Inside the c++ object model, 难度系数 0.8, 推荐指数 0.7
一年前,对于C++,我几乎还是一窍不通,至少可以说是个十分标准的门外汉。那个时候我连基本的,成员初始化列表,都不知道是什么意思,最害怕的就是听到别人和我提起对象,多态什么的,现在想起来,不免心有余悸,背若芒刺啊。
不管如何,还是应该先表扬一下C++ Primer这本书,它似乎也一直被奉为C++中最为经典的启蒙教程,几乎任何一个学习C++的人,都曾经看过,或者应该看看这本独一无二的基础教程,我也未能例外。它几乎囊括了C++中所有的知识体系,对C++的基本语意给与了全面的阐述,所以这本书如果全部一字不漏的看一遍的话,恐怕也是要有非凡耐心的。C++ Primer应该比作C++的小学课本,但这并不能说明本书作者Stanley B Lippman是个只会交小学的平庸之辈,一般来说大师都是能够化繁为简、深入浅出的。
接触Effective C++只在半年前,花了接近2周的时间,突击看了几遍,虽然没有立即达到融会贯通的意境,但还是品味出了C++令人陶醉的......
如何学好C++(网络文摘)(2010-11-03 22:08:00)
摘要: 1.把C++当成一门新的语言学习(和C没啥关系!真的。);
2.看《Thinking In C++》,不要看《C++变成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难
而我们自己是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语
言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多
知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和
不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和
你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
9.看Visual C++的书,是学不了C++语言的;
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
17.C++不仅仅是支持面向对象的程序设计语言;
18.学习编程最好的方法之一就是阅读源代码;
19.在任何时刻都不要认为自己手中的书已经足够了;
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典)......
c++ 教程推荐(2010-11-03 22:04:00)
摘要:
推荐C++教程
1. <<The C++ Programming Language>> , Bjarne Stroustrup
这是一本每个人都应该买但不一定要看的书,强烈建议初学者不要看这本书,否则可能会一头雾水,失去信心,BS写书本来就不怎么样,他自己都说他的书有些晦涩难懂,但是买一本放在书柜里,有什么不清楚的地方查查高人如何解析还是有必要的。中文版是裘老师翻译的,以裘老师的深厚功力,技术上大家大可放心,但语言流畅上我就不敢认同了,况且这还是一本大书,如果要追求语言流畅的话,可能没有两3年是出不来的,而且国内的出版社又那么急功近利,稿酬不高,做得那么好有必要吗?
2. <<C++ Primer>> , lippman?
lippman的地位自然不用猜疑,此书也被评为C++的最佳入门书籍,也是Lipman写得最认真的一本书,第3版在国内98年就有了。全书可谓是C++大全,深度适当,比较适合初学者,或者想对C++和程序设计有大概了解的读者, 但就是比较厚,这也只能怪C++的源远流长,总是在打园场,不断增加新特性,让我们这群读者都不得不捧着这本大书品读。中文版是潘老师翻译的,文字通顺,但缺乏味道,看着一本千来页的书,而且前面一部分讲的都是程序设计思想,容易令人产生困倦,也难怪很多人半道出家学java。
3. <<effective C++ >> Scott meyer 同下
4. <<more effective C++>> , meyer
阅读全文(2943) | 评论:0