博文
watcom编译器的环境变量设置(2008-08-20 09:30:00)
摘要: 环境变量的设置具有优先级,也就是相同环境变量名下的多个变量值之间的关系是前面的变量具有优先级。而watcom对于环境变量比较敏感,需要优先设置。比如对一个程序编译的时候:
wcl386 -zq -bd -bt=os2 -l=os2v2_dll -I%WATCOM%\h\os2 hello.c -"option implib"
wcl386 -zq -bt=os2 -l=os2v2 main.c hello.lib
经常提示的错误:
WATCOM C/C++32 Compile and Link Utility Version 10.0
Copyright by WATCOM International Corp. 1988, 1994. All rights reserved.
WATCOM is a trademark of WATCOM International Corp.
wcc386 TEST.C
WATCOM C32 Optimizing Compiler Version 10.0a
Copyright by WATCOM International Corp. 1984, 1994. All rights reserved.
WATCOM is a trademark of WATCOM International Corp.
C:\VC98\INCLUDE\stdio.h(23): Error! E1091: ERROR: Only Mac or Win32
看到了吧,这是由于默认采用了VC进行了编译,解决方法:
You have installed or are using Visual C++. (Installing other compilers may
cause similar problems.) WATCOM can still be used when other compilers are
installed, however the environment variables INCLUDE, LIB, and WATCOM need
to be set to the default values s......
vc中如何调用matlab(2008-06-06 21:29:00)
摘要:vc调用matlab引擎的一个简单例子
有网友(山城棒棒儿军)按如下步骤在vc中使用matlab引擎:
(1)。启动vc6。0,建立一个mfc(exe)类型工程matlabengine。
(2)。在项目建立后,设置环境。
Tool->options->Diretories 页面下Show directories for
先选择Include Files,输入路径:D:\PROGRAMS\MATLAB6P5P1\EXTERN\INCLUDE
在选择Library Files,输入路径:D:\PROGRAMS\MATLAB6P5P1\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
(我的matlab根目录是 D:\PROGRAMS\MATLAB6P5P1\ ;这里的设置对不同工程只需要一次)
(3)。打开Project->Settings->Link页面,在Object/Library modules
中加入libmatlb.lib libeng.lib libmx.lib。(这里对每个工程都要设置,并且根据需要选不同的库)
(4) 在工程目录的view的头文件中加入
##include "engine.h"
(5) 在about 对话框加入一个按钮,在其按钮响应函数如下:
void CAboutDlg::OnButton1()
{
Engine *ep;
double t[1];
t[0]=6.28;
mxArray *T=NULL;
if(!(ep=engOpen(NULL)))
{
AfxMessageBox("Can not open the matlab engine!");
exit(-1);
}
T=mxCreateDoubleMatrix(1,1,mxREAL);
memcpy((char*)mxGetPr(T),(char*)t,1*sizeof(double));
engPutVariable(ep,"T",T);
engEvalString(ep......
一个简单的病毒汇编程序(2008-06-06 21:11:00)
摘要:转载请注明出处:http://www.czvc.com/
引:前些天学病毒这门技术着实吃了很多苦头,走了很多弯路,尽管按我的知识水平,病毒已经是水到渠成的学习内容了。但是我现在学了入门才发现这门技术实际上隐藏着很多玄机,包含着许多技术,不专门学习研究根本无法达到“牛”的境界上去。如今写了这篇文章,介绍的都是相当实用的东西,可以让你少走许多弯路(有时侯一个错误够你找几个小时的)。不过需要些基础知识才能看懂。假如你有天知识储备够了,不学学病毒将是你的遗憾。另,由于是写给协会会员参考的,也没写的多“专业”,多了些赘述。
在你看之前,你应该知道这只是篇可以带你入门的文章,如果你已经会了就不用看了。看的时候最好准备个PE表在旁边。写病毒程序可以使用很多种语言来写比如C,汇编,甚至有人用Dephi这样可视化编程工具都能写出来。但是最适合写病毒程序的还是汇编语言。汇编语言底层,灵活,速度快,体积小的优势能将一个病毒程序发挥到极至,通常一个程序写出来才几千字节就包含了所有的功能。一般一个病毒都有如下几个功能:
一 代码重定位
二 自己找到所需API地址
三 搜索文件、目录
四 感染文件
五 破坏系统或文件(随便你了)
其中一,二项功能是必要的,五项功能是可选的。而一个病毒程序感染文件的功能是它的核心,是衡量它质量的重要标准。
(一)代码的重定位
一个变量或函数其实是一个内存地址,在编译好后,程序中的指令通过变量或函数的内存地址再去存取他们,这个地址是个绝对地址。如果你将代码插入到其他任何地方,再通过原来编译时产生的地址去找他们就找不到了,因为他们已经搬家了。但是,你在写程序时考虑到这个问题,你就可以在代码最开始,放上几行代码取得程序基地址,以后变量和函数作为偏移地址,显式的加上这个基地址就能顺利找到了,这就是重定位。就象这段代码。
Call getbaseaddress
Getbaseaddr......
VC6.0下配置boost库使用正则表达式(2008-04-14 22:06:00)
摘要:最近做开发碰到了长字符串匹配、搜索的问题,最先想到的是使用正则表达式,简单、高效。
但是我用的开发工具是VC6.0,不支持正则表达式。
上网baidu一下,发现支持正则的库还真不少,大概有以下几种:boost,GNU,VC7带的ATL中的和微软发布的greta。
网上的朋友对boost评价不错,决定就使用是它了!
1、接下来的就是下载boost库,网上很好找。我下载的是压缩包,20多M,解压后将近100多M。
我解压的目录是D:\boost
2、然后是编译,我只要支持正则表达式就可以,因此只需要编译D:\boost\libs\regex\build目录下的文件。据说全部编译要花将近2个小时,没有验证过,在我家里的机器上编译正则表达式部分只用了不到5分钟。
网上介绍的如何编译最多的一篇文章是“VC利用boost库解析正则表达式”,如果有人能根据这篇文章编译成功不妨告诉小弟一声……
以下是我的操作:
在“运行”里输入“cmd”,打开命令提示符;
输入命令“cd D:\boost\libs\regex\build”//设置当前目录
输入命令“D:”//转到当前目录
接下来是很关键的一步:
很多文章是这样说的“输入 nmake -fvc6.mak”
但是出现了“'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。”的错误提示。
然后你就会拼命查找原因,结果又有文章上说是环境变量没配置好,然后给出一堆“set”。
也有的文章说是运行一下visual studio安装目录下的VC98\Bin\VCVARS32.BAT文件就OK了。
你按照文章作者的方法做的,结果发现问题依旧!
以上说法都是正确的,但是说得都不是很完整,出现错误提示的根本原因就是环境变量没配置好,不识别nmake命令,配置过jdk的朋友就很容易明白。如果按照作者的要求搞一堆“set”,未免大题小作了吧,因为我们只需要用一次'nmake' 就可以解决问题了。
VCVARS3......
在同一网卡绑定二IP(2008-04-13 18:54:00)
摘要:网络结构:
有二台路由分别带有二条ADSL,组成了二个不同IP段的局域网,原本二个局域网是相互独立互不干涉的(这也是单位领导的目的)后来因为有一数据需要共享,二个IP段分别为192.168.0.0 mask 255.255.255.0 gateway是192.168.0.1;192.168.1.0 mask 255.255.255.0 gateway是192.168.1.1。
现在领导的要求是,相互还是独立,只是需要共享的二台之间进行数据共享。为此不能把IP段改成统一的,又要能使其中指定二台进行数据共享,首先,我在二台路由下的交换机之间加了一条网线,将二个局域网进行了物理联接。然后是进行IP协议的联接.
方法为:在该连接的tcp/ip协议属性里的高级中的IP设置页中的IP地址里添加一个另一个网段的IP。如下图
比如:在192.168.1.11的机子上添加上一个192.168.0.22的IP,这样二台之间立码可以共享了。
唯一的不足是:这一台机子(也只是这一台)在二个局域网内可以被大家看到。
......
u盘改图标(2008-01-14 13:52:00)
摘要:推荐一个u盘改图标的办法,就是删除后也不怕,快速恢复就行。
主要是使用批处理的方法。
下面介绍步骤:
打开记事本,输入以下内容:
@echo off
color 3f
title ADDico by LitteJack
:menu
cls
echo.
echo [1] 更改固定磁盘的图标
echo [2] 更改可移动磁盘的图标
echo [3] 更改指定磁盘的图标
echo [4] 恢复指定磁盘的图标
echo [0] 退出
echo.
set /p choice= 请选择(1/2/3/4/0):
if "%choice%"=="1" goto menudisk
if "%choice%"=="2" goto menumove
if "%choice%"=="3" goto menuadd
if "%choice%"=="4" goto menudel
if "%choice%"=="0" goto end
goto menu
:menudisk
cls
echo 正在更改固定磁盘的图标,请稍后...
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
fsutil fsinfo drivetype %%a:|find /i "固定" >nul && (
copy autorun.ico %%a:\ >nul 2>nul
copy autorun.inf %%a:\ >nul 2>nul
attrib +r +s +h %%a:\autorun.ico >nul 2>nul
attrib +r +s +h %%a:\autorun.inf >nul 2>nul
))>nul 2>nul
cls
echo 更改完毕,按任意键返回... &pause>nul
goto menu
:menumove
cls
echo 正在更改可移动磁盘的图标,......
u 盘识毒(2008-01-14 13:21:00)
摘要:文件名:Desktop.ini
[.ShellClassInfo]
InfoTip=骑士番茄的优盘!
IconFile=%SystemRoot%\system32\SHELL32.dll
IconIndex=146
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
IconArea_TextBackground=0x000000FF
IconArea_Text=0x0000FF33
IconArea_Image=18.jpg
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
--------------相关
永久杜绝U盘病毒自动传播的方法 :
首先,说明U盘病毒传播的原理:在U盘根目录下建立一个AUTORUN.INF文件。系统在插入U盘的时候会根据这个AUTORUN.INF文件在注册表
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
下建立一个u盘的关联项,使双击打开指定的程序(如病毒程序)。因此只需禁止在此注册表位置创建子项即可。
禁止病毒的具体方法
1. 点开始->运行 输入 regedit.exe 回车
2. 打开注册表编辑器后展开项[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
3. 右键点MountPoints2 选择权限
4. 依次点击“安全中的用户和组”,在下面的权限中都改成拒绝
5. 刷新一遍,此后即使U盘有病毒也不会激活,双击U盘会正常进入U盘
经过这样的权限设置,任何情况下的autorun.inf调用将被屏蔽,在默认状态下,带......
键盘的背后(2007-11-08 12:17:00)
摘要:按一个键到底发生了多少事?为什么有的驻留程序能够一下子被热键唤醒从后台弹出?听说过一些能够记录按键的软件吗,平时它不声不响躲在后台,可是你敲入的键全都被它记录在一个文件当中!这一切的原理到底是什么?
先让我们来瞧一个程序:
#include
#include
#include
void interrupt(*old9)();
void interrupt(*old60)();
void interrupt(*old61)();
void interrupt(*old78)();
void interrupt(*new61)();
void interrupt new9()
{
(*old9)(); /* 调用原09H 中断 */
sound(2227);
delay(100);
nosound();
}
void interrupt new60() /* 恢复原向量,由卸载程序使用*/
{
setvect(0x9,old9);
setvect(0x60,old60);
setvect(0x61,old61);
setvect(0x78,old78);
}
void interrupt new78()
{
/*空函数,起防止多次驻留用*/
}
void main(void)
{
old61=getvect(0x61);/*保存原0x61中断向量*/
old78=getvect(0x78);/*保存原0x78中断向量*/
old60=getvect(0x60);/*保存原0x60中断向量*/
old9=getvect(0x9);/*保存原0x9中断向量*/
if(old78!=0)
{
printf("程序已经驻留在内存!");
return;
}
new61=_psp;/*设置new61中断地址为程序段前缀,供卸载程序使用*/
setvect(0x61,new61); /*设置新0x61中断向量*/
setvect(0x9,new9); /*设置新0x9中断向量*/
setvect(0x60,new60);/*设置新0x60中断向量*/
setvect(0x78,new78);/*设置新0x78中断向量*/
printf("已完成驻留!");
keep(0,900......
WinRAR 软件注册方法(2007-10-01 09:44:00)
摘要:大家知道 WinRAR 软件只有40天的试用,过期了尽管还是能使用,但是每次调出一个对话框出来提示,很是不爽,其实注册的方法很简单,只要将下面的信息在记事本上输入,存为rarreg.key,复制进Winrar的根目录里面,直接覆盖就可以了。如果嫌麻烦,可以输入下面网址。
----------------------------------------------------------------------------------------
RAR registration data
Carol Thompson
Single PC usage license
UID=b8bc6fb0a8094b9eeb29
6412212250eb294bd5b605e535f7334b6e2e56a9e405a044f60225
c843a161a156aa01684c6035c6ab9048e2c5c62f0238f183d28519
aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0
c3e4c2736090b3dfa45384e08e9de05c5860ae8049eaa9443b44f9
faac06b7ced5f95ab06b40a99e850616dc92fc5301fe63c674ea55
3971fefd9e10f300d2a515c74b02f673b7fe5a89fa92f51260a5af
78a306093f5763d6acc779488f5d42e9b044836a837c0424153795
----------------------------------------------------------------------
[url]http://wstatic.xunlei.com/web/content.htm?cid=73DBDDB1EBF91714C42CB7E697018283DBA090F3[/url]
非原创,转帖至迅雷网站......
文件压缩(2007-09-29 01:40:00)
摘要:选中你要压缩的文件,然后点击右键,压缩为文件,弹出窗口让你设置文件名,下面可以设置每个文件的大小。比如 10 K......