关于VC++的exern CNetPhoneAPP theAPP代码是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于VC++的exern CNetPhoneAPP theAPP代码是啥意思?相关的知识,希望对你有一定的参考价值。

exern是什么意思?
CNetPhoneAPP 的作用什么?
theAPP 是什么意思?

好像你的关键字写 错了哟:extern 他是定义这是一个外部的变量(在一个文件的变量在他们的文件中是不能用的,那么我们用这个关键字就可以解决这个问题)
CNetPhoneAPP 是类名 在MFC中,系统自己生成的类都在前面加上一个C NetPhone就是你应用程序的名字 APP是代表应用程序的类。
theApp就是一个一个MFC应用程序类的一个对象,每一个应用程序都有这样的一个对象,他的作用主要是将你所创建的应用程序与底层的函数联系起来,那么是通过什么来连接的呢? 其实的在创立theAPP时通过this指针把MFC的WinMain函数联系起来。

你的这个代码,我想的话,可能是在其的文件里面要要到theAPP,所以在前面进行声明
参考技术A

extern是关键字(注意不是exern),在这里表明后面的不是定义一个新变量,而是声明一个对外部变量的引用。

CNetPhoneAPP 是类名,这个类是当前MFC程序的主应用程序类。

这个语句的作用,就是声明了一个外部应用程序类变量theApp。


这个语句,通常会出现在MFC程序的非主程序CPP代码中,用于方便的使用App类进行操作。但这个方法,并不是MFC程序推荐使用的方法。

推荐使用的方法是:在MFC框架内的任意源代码中,都可以使用AfxGetApp函数获取到App类指针,示例如下:

HCURSOR hand = AfxGetApp()->LoadStandardCursor(IDC_CROSS);
CNetPhoneAPP* theApp = (CNetPhoneAPP *)AfxGetApp();

关于VC6中CxImage6.00类的使用,谢谢!!

我第一次使用cximage,准备做一些关于图像处理的东西,然后我用的是VC6,我是这么使用的
首先,我下载的cximage600_full,解压后,编译了全部dsw文件
然后,我在c盘新建了一个image的工程,然后我把所有的lib文件都放在了C:\IMAGE\LIB中,然后在project setting-lnk-object/library modules中设置了lib/png.lib lib/libdcr.lib lib/jpeg.lib lib/cximage.lib lib/jasper.lib lib/jbig.lib lib/mng.lib lib/png.lib lib/tiff.lib lib/zlib.lib lib/demou.lib lib/cximagecrtu.lib,即包含了所有的lib文件
然后,在project setting-C/C++-preprocessor-Additional include directories中填写了cximage的目录c:\TDDOWNLOAD\cximage\cximage600_full\cximage,其余的code generation和precomlied headers都按照说明设置的,此时编译正常。
然后我准备加入指令,就是经典的图形转换
CxImage image;
// bmp -> jpg

image.Load("image.bmp", CXIMAGE_FORMAT_BMP);
if (image.IsValid())
if(!image.IsGrayScale()) image.IncreaseBpp(24);
image.SetJpegQuality(80);
image.Save("image.jpg",CXIMAGE_FORMAT_JPG);

结果出现以下错误信息:
ImageDoc.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CxImage::Save(char const *,unsigned long)" (?Save@CxImage@@QAE_NPBDK@Z)
ImageDoc.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CxImage::Load(char const *,unsigned long)" (?Load@CxImage@@QAE_NPBDK@Z)
首先我想问的是,我的开始配置方法有问题吗?
然后,出现这个错误应该怎么解决?我看网上是说好像跟什么unicode有关,请高手指点,谢谢!!!

cximage的库都是用的unicode的编码方式写得,所以你的应用程序最好也要用unicode编码方式来写。 参考技术A 你的情况比较难说……我下载的Cximage是ANSI版本的;另外看你的出错提示也不像是UNICODE同错;更像是你包含的LIB文件路径错了;你要么在VC的工作路径的LIB里添加C:\IMAGE\LIB这一项;要么修改你的project setting-lnk-object/library modules,全部改成
./lib/png.lib
这种形式。(当然,lib目录要在你的工程目录下面)
参考技术B 这种形式。(当然,lib目录要在你的工程目录下面)

以上是关于关于VC++的exern CNetPhoneAPP theAPP代码是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题

关于richeditbox垂直滚动条 vc

关于VC工程的组成

关于VC6中CxImage6.00类的使用,谢谢!!

vc关于文件拷贝

关于VC++ Createwindow的用法