博文
【转】S0/0 S0/1口的作用(2009-01-21 09:06:00)
摘要:S0/0 S0/1口是用来接64K-2M专线的,它的接口是60针的,需要加一台协议转换器来接到运营商的光端机上;
F0/0是外网以太网口 F0/1是内网以太网口;
AUX口是用来从远程modem登录管理的,它需要接一个外置的modem,并且还要有一个电话线(能被打进电话)。......
vc 程序打包(2008-12-24 09:19:00)
摘要:installshield
wise isntall
setupfactory
nsis
都可以满足你......
转 定义函数数组[C/C++](2008-08-23 16:46:00)
摘要:// 函数定义
void fun1() { printf("function 1 "); }
void fun2() { printf("function 2 "); }
void fun3() { printf("function 3 "); }
void fun4() { printf("function 4 "); }
// 方法1
// 函数数组定义并赋初值
void (*p[])() = { fun1, fun2, fun3, fun4 };
// 调用数组中的函数
for(int i=0; i < 4; i++)
{
p[i]();
}
// 方法2
typedef void (*PFUN)(); // 定义函数指针
PFUNC funArray[] = { fun1, fun2, fun3, fun4 };
// 调用数组中的函数
for(int i=0; i < 4; i++)
{
funArray[i]();
}
http://blog.csdn.net/mynamelj/archive/2007/10/06/1813043.aspx......
转Visual C++实现Flash动画播放(2008-02-22 14:20:00)
摘要:
摘要: 本文通过在VC中将外部swf格式文件内嵌为VC的内部资源,使其在程序运行过程中从资源动态释放到临时文件,从而实现VC对Flash动画的播放。
引言
Flash动画由于可以很方便地把用户的想象通过动画显现出来,使原本只属于专业制作人员的动画制作变的异乎寻常的快捷、方便。由于Flash 制作的动画在层次、内容、表现形式等诸多方面均比较出色,因此在网络上得到迅猛的发展,更有不少厂商用Flash在互联网上做起了广告和产品演示,效果丝毫不比视频的差,而体积则要小的多。Flash不仅在网络上有广泛的应用,在普通的应用程序中也可以借助Flash实现一些VC、Delphi等编程语言所难以实现的特效,比如在一些演示版的程序中完全可以将程序运行前的闪屏用Flash来制作。本文下面将通过对内嵌资源的动态释放来实现VC对Flash 动画的播放,并给出了部分实现代码。
嵌资源的动态释放
Flash动画在此是作为程序的一个模块,虽然也可以以文件的形式作为一个外部资源来使用,但为了避免因外部模块遗失而造成程序的非正常运行,可将由Flash 5.0预先制作好的swf格式的文件以资源的形式打包到应用程序中去,而在程序运行时再将其从资源恢复到文件,使用完毕再通过程序将其从磁盘删除。
在导入资源时由于swf格式文件并非VC的标准资源,所以在导入时需要在"Resource type"栏指定资源类型"SWF",特别需要注意的是在此必须要包含引号。加入到资源后可以通过资源视图看到导入的SWF资源是以二进制形式保存的,一但加入就不能再通过资源视图对其进行编辑了。
在使用SWF资源前首先要将其动态从应用程序中释放到文件中才可对资源做进一步的使用。可先通过宏MAKEINTRESOURCE()将资源标识号IDR_SWF转换成字符串Name,再分别通过FindResource()、LoadResource()函数查找、装载该资源到内存:
CString Type="swf";
HRSRC res=FindResource (NULL,Name,Type);
HGLOBAL gl=LoadResource (NULL,res);
当资源加载到内存后,还要通过对资源内存的锁定来返回指向资源内存的地址的指针,并籍此实现资源从内存到磁盘的保......
转在VC中如果实现GIF的播放?(2008-02-20 15:47:00)
摘要: 在VC中如果实现GIF的播放?
void CImageView::OnDraw(CDC* pDC)
{
CImageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
IPicture *pPic;
IStream *pStm;
CFileStatus fstatus;
CFile file;
LONG cb;
if (file.Open("c:/a.jpg",CFile::modeRead)
&n......
转VC下显示JPEG、GIF图像的简便方法(2008-02-20 15:39:00)
摘要:摘要:本文讲述了在Visual C++ 6.0下显示JPEG、GIF等格式标准的图像的一种实现起来比较简便的方法,对实现过程作有详细的说明。
关键字:图像、JPEG、GIF、Microsoft Visual C++ 6.0
一、 引言
JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可。GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也得到了广泛的认同。但作为众多程序员的一个重要的开发工具--Microsoft Visual C++ 6.0的MFC库却仅对没有经过任何压缩的BMP位图文件有着良好的支持,可以读取、显示、存储甚至在内存中创建一块内存位图。由于BMP格式的图像没有经过任何的压缩,不论是作为程序的外部文件,还是作为程序的内部资源都要占据大量的空间,尤其是后者会大大增加可执行文件的长度。可以看出,如果能用经过压缩、具有较好的压缩率的JPEG或GIF格式的图像来取代BMP文件在VC中的应用,无疑还是很有吸引力的。
二、 设计思路
虽然有一些操作、处理JPEG、GIF等其他格式图像的Active X控件,但总的来说使用起来并不太方便,笔者经过实验摸索,总结出了一种借助于COM接口的OLE方法来实现上述功能的一种简便方法,现介绍如下以飨广大读者:
下面我们要使用IPicture 的COM接口,有必要对该图像接口做些了解:该接口主要管理图像对象及其属性,图像对象为位图、图标和图元等提供一种与语言无关的抽象。和标准的字体对象一样,系统也提供了对图像对象的标准实现。其主要的接口是IPicture和 IPictureDisp,后者是由IDispatch接口派生以便通过自动化对图像的属性进行访问。图像对象也支持外部接口 IPropertyNotifySink,以便用户能在图像属性发生改变时作出决定。图像对象也支持IPersistStream接口,所以它能从一个 IStream接口的实例对象保存、装载自己,而IStream接口也支持对流对象的数据读写。
我们可以用函数OleLoadPicture从包含有图像数据的流中装......
转在VC中使用 Flash 美化你的程序(2008-02-20 14:02:00)
摘要:
[ 原创文档 本文适合中级读者 已阅读24361次 ]
文档 代码 工具
在VC中使用 Flash 美化你的程序
作者:黄金聪源代码下载
代码运行效果图
利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。
我们分为两步来走:
一、将flash动画嵌入自己的程序中,这一点比较简单,使用shockwave flash object控件就可以实现。这个控件在安装flash的时候就装到你的系统上了,flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx,在系统目录里面应该可以找得到;
二、在flash动画和自己的程序中传递消息进行交互。这一点也是要通过控件来实现,不过得在flash动画和自己的程序中做些处理。
下面我们来具体说明操作过程:
一、将flash动画嵌入自己的程序中。所有在windows平台上的支持ocx控件的软件开发工具都可以做到这一点。我使用的是vc++6.0,就以这个的做法来介绍。
1、检查你的系统上是否有shockwave flash object控件并已注册。如果你的系统上装有flash,则就有这个控件,否则的话,可以到网上下载一个过来安装。
2、新建一个MFC对话框应用程序,假设命名为PlayFlash。
3、添加shockwave flash object控件。建立对话框应用程序后,在主菜单里选择“工程->添加工程->components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwave flash object(......
转如何在VC中显示动态的GIF(2008-02-20 13:43:00)
摘要:
如何在VC中显示动态的GIF
作者:薛碧
下载本文示例源代码
如果是使用VB,也许这个话题是多余的,因为VB有一个图象控件可以非常容易地实现各种格式的图象显示功能,然而对于VC却没有一个象样的控件可以达到这种效果,怎么办?经过一段日子的研究,发现只需要实现两步工作,就可以在VC中实现如同VB中一样的gif动态效果。
本文将介绍的两部分是IPicture接口的使用和gif的储存格式,好象一听到储存格式,读者就不想再看下去了!其实不然,这里只须用到其最基本的一部分,请读者耐心地往下看。
一.IPicture接口
IPicture接口是一个com类,其成员函数可参见微软的MSDN,这里只需用到以下几个函数:
get_Width
返回当前图像的宽度
get_Height
返回当前图像的高度
Render
在指定的位置、设备上下文上绘制指定的图像
IPicture的使用不需要CoCreateInstance函数,而只需要使用OleLoadPicture,鉴于此接口在许多文章杂志上均有介绍,这里略去(因为不是本文的重点)。
二.Gif储存格式
gif储存格式是一个非常复杂的内容,如果要讲透彻可以写很多篇文章,庆幸的是要实现本文的主题只需要知道其中的一个图象储存结构就可以了,这里定义该图象结构为gifImage:
typedef struct gifImage{
WORD logX;
WORD logY;
WORD width;
WORD height;
struct flag{
BYTE d:3;
BYTE c:1;
BYTE b:3;
......
[原]hDc与CDC(2008-01-30 14:17:00)
摘要:一个是句柄,一个是对象。
CDC::CreateCompatibleDC
virtual BOOL CreateCompatibleDC( CDC* pDC );
Return Value
Nonzero if the function is successful; otherwise 0.
重要的在这
It can be used to prepare images in memory before copying them to the actual device surface of the compatible device.
可以进行图像缓冲
When a memory device context is created, GDI automatically selects a 1-by-1 monochrome stock bitmap for it. GDI output functions can be used with a memory device context only if a bitmap has been created and selected into that context.
只有图像被作为资源引入并选入该容器,GDI导出函数才可能被使用。
原来是操作GDI的利器
......
转直接通过ODBC读写Excel表格文件(2008-01-03 16:26:00)
摘要:直接通过ODBC读写Excel表格文件
译者:徐景周(原作:Alexander Mikula)
下载本文示例代码
想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:
1. 在StdAfx.h文件中加入: #include <afxdb.h>
#include <odbcinst.h>
2. 通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls) //创建并写入Excel文件
void CRWExcel::WriteToExcel()
{
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
CString sExcelFile = "c:\\demo.xls"; // 要建立的Excel文件
CString sSql;
TRY
{
// 创建进行存取的字符串
sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver, sExcelFile, sExcelFile);
// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// 创建表结构(姓名、年龄)
sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
database.ExecuteSQL(sSql);
// 插入数值
sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)";
......