【C++】hosts文件的问题问题求助!~?

我现在有个问题,我需要用C++做个DLL文件,程序代码我都有,但是我应该怎么封装???求助!!_百度知道
我现在有个问题,我需要用C++做个DLL文件,程序代码我都有,但是我应该怎么封装???求助!!
我有更好的答案
用vc6建立dll工程,然后把你的代码添加进去,再做导出声明最后build即可可加Q群:或
其他类似问题
dll文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求助:使用Microsoft visual C++ 6.0时不能打开文件是怎么回事啊?_百度知道
求助:使用Microsoft visual C++ 6.0时不能打开文件是怎么回事啊?
出现的情况是:“0x5003eaed”指令引用的“0x”内存,该内存不能为“read”.和“0x73d311a3”指令引用的“0x”内存,该内存不能为&read&.
提问者采纳
您好!出现:0x???????? 指令引用的0x????????内存。该内存不能为&read&或&written&。答案【shijan8原创】★严禁复制★ 【1】对电脑没有影响或【偶尔】出现,不用管它,【重启电脑】后可能会自动消失。【2】盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议:安装【正版】系统。【3】检查驱动是否出现问题,重新安装驱动或及时更新驱动。【4】病毒引起的:升级杀毒软件或下载专杀工具,清理恶意插件,对电脑全盘杀毒。【5】硬件引起的:(1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。(硬件上一般不会出现该问题)【6】软件引起的:(1)安装的软件与系统或其它软件发生冲突,盗版或带病毒的软件,请慎重下载软件,最好使用正版。【这里主要说的是检查开机启动项,把没必要启动的启动项禁止开机启动】(2)如果你的电脑中安装了两款或两款以上的同类软件,比如:两款杀毒软件、两款优化系统软件等,请卸载一款,以免发生冲突,以保持电脑稳定性。(3)有些系统补丁下载安装了错误补丁,可能与您当前的系统或其它软件发生冲突,也会出现该问题。卸载该补丁,找到适合您电脑补丁,重新下载重新安装。可以试试下面的方法:看看能不能解决。◆开始→运行→输入cmd→回车,在命令提示符下输入下面命令 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车。 完成后,在输入下面的for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车。如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。(重启电脑)。 ●在检查运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,应该只有一个正常的键值{AEB-11d0-97EE-00C04FD91972}, 将其他的删除。【如果还有一个(默认)值不用管它,一般它为空。】必要时【还原】或重新安装系统。
提问者评价
谢谢你的答案!
其他类似问题
多半是数组越界了。
打开文件的相关知识
其他1条回答
朋友,电脑出现:内存不能为read,这是你下载的“软件”与电脑内存有“冲突”!原因总结起来,有以下方面,偶尔出现,点:取消,即可!(答案原创,本答案原作者:力王历史)1.电脑中了木马或者有病毒在干扰!试试:杀毒软件,360安全卫士+360杀毒双引擎版,或者金山卫士+金山毒霸,建议:修复“高危”和“重要”漏洞!使用“木马云查杀”和“360杀毒”,“全盘扫描”和“自定义扫描”病毒和木马,删除后,重启电脑!开机后,点开“隔离|恢复”,找到木马和病毒,彻底删除文件!2.如果第1种方法不行,打开:“360安全卫士”,“木马查杀”里的:“360系统急救箱”!先“开始急救”,查杀完毕,删除“可疑启动项”和木马,再重启电脑!然后点开“文件恢复区”,找到“可疑启动项”和木马,点“彻底删除”!再点开“系统修复”,“全选”,再点“立即修复”!网络修复,立即修复,重启电脑!3.用“360安全卫士”,“系统修复”,一键修复!再:“清理插件”,立即扫描,立即清理:恶评插件!4.你下载的“播放器”,或“聊天软件”,或“IE浏览器”,或者“驱动”,或“游戏”的程序不稳定,或者“版本太旧”!建议卸掉,下载新的,或将其升级为“最新版本”!5.软件冲突,你安装了两款或两款以上的同类软件(如:两款播放器,两款qq,或多款浏览器,多款杀毒软件,多款网游等等)!它们在一起不“兼容”,卸掉“多余”的那一款!6.卸载方法:你在电脑左下角“开始”菜单里找到“强力卸载电脑上的软件”,找到多余的那款卸掉! 卸完了再“强力清扫”!或者“360安全卫士”,“软件管家”,点开,第4项:“软件卸载”,点开,找到“多余”和“类似”的软件卸载!如:“播放器”,点开,留下“暴风”,卸载“快播”!如:“下载”:点开,留下“迅雷”,卸载“快车”!(看准了再卸,别把有用的卸了)7.如果还是不行,去网上下载一个“read修复工具”,修复试试!8.再不行,重启电脑,开机后按“F8”,回车,回车,进到“安全模式”里,“高级启动选项”,找到:“最后一次正确配置”,按下去试试,看看效果如何!9.再不行,开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1 粘贴,回车,再输入:for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车!直到屏幕滚动停止为止,重启电脑!10.实在不行就“一键还原”系统或“重装系统”!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁【求助】问一个超级简单的问题,关于C++头文件 [文字模式]
- 看雪安全论坛
查看完整版本 :
perrych自己写的程序哪些内容应该放头文件,哪些放*.cpp文件
我在书上没有找到相关的介绍,网络上搜索找C++头文件出来的基本全是对C++/C标准库头文件的介绍
1&d:\visual studio 2008\projects\cpp_002\cpp_002\array.h(48) : error C2955: “Array”: 使用类 模板 需要 模板 参数列表
我自己写的类,用模板,编译一直出来这个问题,不知道应该如何解决
perrycharray.h
template &class elemType&
class Array {
explicit Array( int size = DefaultArraySize );
Array( elemType *array, int array_size );
Array( const Array &rhs );
virtual ~Array() { delete [] }
bool operator==( const Array& )
bool operator!=( const Array& )
Array& operator=( const Array& );
int size() const { return _ }
virtual elemType& operator[](int index) { return ia[index]; }
virtual void sort();
virtual elemType min()
virtual elemType max()
virtual int find( elemType value )
protected:
static const int DefaultArraySize = 12;
elemType *
#include &stdafx.h&
#include &Array.h&
#include &iostream&
Array::Array( int sz)
ia = new elemType[ _size ];
for ( int ix=0; ix & _ ++ix )
ia[ ix ] = 0;
Array::Array( elemType *array, int sz )
ia = new elemType[ _size ];
for ( int ix=0; ix & _ ++ix )
ia[ix ] = array[ ix ];
Array::Array( const Array &rhs )
_size = rhs._
ia = new elemType[ _size ];
for (int ix = 0; ix & _ ix++ )
ia[ ix ] = rhs.ia[ ix ];
int _tmain(int argc, _TCHAR* argv[])
const int array_size = 4;
Array&int& ia(array_size);
Array&double& da(array_size);
Array&char& ca(array_size);
for ( ix = 0; ix & array_ ++ix ) {
da[ix] = ix * 1.75;
ca[ix] = ix + 'a';
for ( ix = 0; ix & array_ ++ix )
cout && &[ & && ix && & ] ia: & && ia[ix]
&& &\tca: & && ca[ix]
&& &\tda: & && da[ix] &&
安摧适当参考这个文档中的部分内容吧,,,一句话说不完
perrych刚才看了参考文档,似乎这些还不是我现在最关心的
我现在不知道自己写一段code,哪些代码应该放头文件,哪些代码应该放代码文件。
还是就是我用了模板,发现我的程序根本通不过编译,也不知道错误在哪里。我现在只是希望能解决这些最基本问题,可以一边看书上的代码效果一边学习!
perrych花了4个小时比较人家的源码才发现原来
template&class TYPE& Array&TYPE&::Array( int sz)
这个格式才是正确的
ztd了解一下什么是函数声明和定义就知道哪里该放什么了。
whtyy对于一个功能模块(包含一个或者多个.C/.CPP),应该有一个对应的接口头文件,导出的此接口相关的函数声明/类型定义
如果功能模块包含有多个源码文件(.C/.CPP),那么可以把模块内部的公共库函数或者公共的类型定义放在一个头文件中(模块内部的头文件)
VS的模板类不支持声明和实现的分离,所以模板类的实现代码必须放在头文件中新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分105 UID8519450阅读权限10积分13帖子精华可用积分13 专家积分0 在线时间53 小时注册时间最后登录
白手起家, 积分 13, 距离下一级还需 187 积分
帖子主题精华可用积分13 专家积分0 在线时间53 小时注册时间最后登录
论坛徽章:0
client向server上传文件, 用的循环方法,但是始终只有一个BUFSIZE大小的字符串写入outfile,还请帮忙看看是什么地方不对,还是我对socket理解本身存在问题?
&&P.s 还有个支持断点续传的要求, 也请各位指点一下思路, 谢谢。
//client.c
#include &stdio.h&& &&&
#include &sys/socket.h&
#include &arpa/inet.h&
#include &stdlib.h&&&
#include &string.h&
#include &unistd.h&
#define BUFSIZE 1024
void DieWithError(char *errorMessage);
int main(int argc, char *argv[])
& && && && && && && && &
& & struct sockaddr_in ServA
& & unsigned short ServP& & & &
& & char *servIP;& && && && &&&
& & char RdBuffer[BUFSIZE];
& & int i, length, cnt = 0;
& & FILE *
& & if ((argc & 3) || (argc & 4))& & & & {& & & && &
& && & fprintf(stderr, &Usage: %s &File Name& &Server IP& [&Echo Port&]\n&, argv[0]);
& && & exit(1);
& & servIP = argv[2];
& & if (argc == 4)
& && &&&ServPort = atoi(argv[3]);
& && &&&ServPort = 3333;
& & if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) & 0)
& && &&&DieWithError(&socket() failed&);
& & memset(&ServAddr, 0, sizeof(ServAddr));& &&&
& & ServAddr.sin_family = AF_INET;& && && && &
& & ServAddr.sin_addr.s_addr = inet_addr(servIP);
& & ServAddr.sin_port = htons(ServPort); & & & & & & & &
& & if (connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)) & 0)
& && &&&DieWithError(&connect() failed&);
& & if ((ifp = fopen(argv[1], &r&)) == NULL)& & & &
& && &&&DieWithError(&file open error\n&);
& & & & & & & &
& & fseek(ifp, 0, SEEK_END);
& & length = ftell(ifp);
& & fseek(ifp, 0, SEEK_SET);
& & if ((length % BUFSIZE) == 0)
& & & & cnt = length / BUFSIZE;
& & & & cnt = length / BUFSIZE + 1;
& & for (i = 0; i & i++)& & & & {
& & & & memset(RdBuffer, '\0', BUFSIZE);
& & & & fread(RdBuffer, BUFSIZE, 1, ifp);
& & if (send(sock, RdBuffer, BUFSIZE, 0) & 0)
& && &&&DieWithError(&send() failed&);
& & printf(&%s\n&, RdBuffer);& & & & & & & &
& & fclose(ifp);
& & close(sock);
& & exit(0);
void DieWithError(char *errorMessage)& & & & {& & & & & & & &
& & perror(errorMessage);
& & exit(1);
//server.c
#include &stdio.h&& &&&
#include &sys/socket.h&
#include &arpa/inet.h&
#include &stdlib.h&& &
#include &string.h&&&
#include &unistd.h&
#define MAXPENDING 5&&
#define BUFSIZE 1024&&
void DieWithError(char *errorMessage);
int main(int argc, char *argv[])
& & int servS& && && && && && &
& & int clntS& & & & & & & & & & & & & & & &
& & struct sockaddr_in ServA
& & struct sockaddr_in ClntA
& & unsigned short ServP& &
& & unsigned int clntL& &&&
& & char WrBuffer[BUFSIZE];
& & FILE *
& & if (argc != 2)& & & & {& &
& & & & & & fprintf(stderr, &Usage:&&%s &Server Port&\n&, argv[0]);
& && &&&exit(1);
& & ServPort = atoi(argv[1]);&&
& & if ((servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) & 0)
& && &&&DieWithError(&socket() failed&);
& & memset(&ServAddr, 0, sizeof(ServAddr));& & & &
& & ServAddr.sin_family = AF_INET;& & & & & & & &
& & ServAddr.sin_addr.s_addr = htonl(INADDR_ANY);
& & ServAddr.sin_port = htons(ServPort);& && && & & &
& & if (bind(servSock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)) & 0)
& && &&&DieWithError(&bind() failed&);
& & if (listen(servSock, MAXPENDING) & 0)
& && &&&DieWithError(&listen() failed&);
& & for (; ; )& & & & {
& & & & ofp = fopen(&outfile&, &a&);
& && &&&clntLen = sizeof(ClntAddr);
& && &&&if ((clntSock = accept(servSock, (struct sockaddr *) &ClntAddr, &clntLen)) & 0)
& && && && &DieWithError(&accept() failed&);
& && &&&printf(&Handling client %s\n&, inet_ntoa(ClntAddr.sin_addr));
& & & & memset(WrBuffer, '\0', BUFSIZE);
& & & & if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) & 0)
& && && && &DieWithError(&recv() failed&);
& & & & if (fwrite(WrBuffer, BUFSIZE, 1, ofp) & 0)
& & & && &&&DieWithError(&write error\n&);
& && &&&printf(&%s\n&, WrBuffer);
& & & & fclose(ofp);
& & return 0;
void DieWithError(char *errorMessage)& & & & {
& & perror(errorMessage);
& & exit(1);
if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) < 0)
DieWithError("recv() failed");
if (fwrite(WrBuffer, BUFSIZE, 1, ofp)
if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) < 0)
{DieWithError("recv() failed");}
if (fwrite(WrBuffer, BUFSIZE, 1, ofp) <
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分264 UID阅读权限30积分1902帖子精华可用积分1902 专家积分30 在线时间1137 小时注册时间最后登录
家境小康, 积分 1902, 距离下一级还需 98 积分
帖子主题精华可用积分1902 专家积分30 在线时间1137 小时注册时间最后登录
论坛徽章:0
if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) & 0)
& && && && &DieWithError(&recv() failed&);
& && &&&if (fwrite(WrBuffer, BUFSIZE, 1, ofp) & 0)
& && && && &DieWithError(&write error\n&);
& && &&&printf(&%s\n&, WrBuffer);
& & & & if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) & 0)
& && && && &{DieWithError(&recv() failed&);}
& && &&&if (fwrite(WrBuffer, BUFSIZE, 1, ofp) & 0)
& && && && &{DieWithError(&write error\n&);}
& && &&&printf(&%s\n&, WrBuffer);;
三分天注定 七分靠打拼
空间积分0 信誉积分915 UID阅读权限50积分3140帖子精华可用积分3140 专家积分15 在线时间3067 小时注册时间最后登录
小富即安, 积分 3140, 距离下一级还需 1860 积分
帖子主题精华可用积分3140 专家积分15 在线时间3067 小时注册时间最后登录
论坛徽章:0
客户端怎么不用sendfile
接收文件的话,下面代码这么写就决定了每次只能接收一点数据啊.
& & for (; ; )& && &&&{
& && &&&ofp = fopen(&outfile&, &a&);
& && &&&clntLen = sizeof(ClntAddr);
& && &&&if ((clntSock = accept(servSock, (struct sockaddr *) &ClntAddr, &clntLen)) & 0)
& && && && &DieWithError(&accept() failed&);
& && &&&printf(&Handling client %s\n&, inet_ntoa(ClntAddr.sin_addr));
& && &&&memset(WrBuffer, '\0', BUFSIZE);
& && &&&if (((recv(clntSock, WrBuffer, BUFSIZE, 0))) & 0)
& && && && &DieWithError(&recv() failed&);
& && &&&if (fwrite(WrBuffer, BUFSIZE, 1, ofp) & 0)
& && && && &DieWithError(&write error\n&);
& && &&&printf(&%s\n&, WrBuffer);
& && &&&fclose(ofp);
一般都是这样的流程
打开文件,接受连接,在新的套接字上,循环recv数据并写入到文件.
[ 本帖最后由 xinglp 于
19:00 编辑 ]
空间积分0 信誉积分738 UID阅读权限30积分1028帖子精华可用积分1028 专家积分0 在线时间4414 小时注册时间最后登录
家境小康, 积分 1028, 距离下一级还需 972 积分
帖子主题精华可用积分1028 专家积分0 在线时间4414 小时注册时间最后登录
论坛徽章:0
server只recv一次,之后阻塞在accept上了,
空间积分0 信誉积分105 UID8519450阅读权限10积分13帖子精华可用积分13 专家积分0 在线时间53 小时注册时间最后登录
白手起家, 积分 13, 距离下一级还需 187 积分
帖子主题精华可用积分13 专家积分0 在线时间53 小时注册时间最后登录
论坛徽章:0
我也感觉主要是block的问题,和用send/sendfile应该没太大关系。那么解决这类问题一般用什么方法呢?
初学socket,还请指点下。
空间积分0 信誉积分630 UID9918720阅读权限30积分1874帖子精华可用积分1874 专家积分200 在线时间2900 小时注册时间最后登录
家境小康, 积分 1874, 距离下一级还需 126 积分
帖子主题精华可用积分1874 专家积分200 在线时间2900 小时注册时间最后登录
论坛徽章:0
原帖由 deanreal 于
13:18 发表
我也感觉主要是block的问题,和用send/sendfile应该没太大关系。那么解决这类问题一般用什么方法呢?
初学socket,还请指点下。
前面几位老兄都已经讲得很清楚了, recv 和 fwrite 要放在一个循环里面去做, 直到文件接收完毕(客户端断开). 因为不能保证服务器一次recv就把整个文件的数据都收完了.
写客户端的时候你不也知道要把 fread 和 send 放在一个循环里面去做吗?
空间积分0 信誉积分0 UID阅读权限10积分73帖子精华可用积分73 专家积分0 在线时间35 小时注册时间最后登录
白手起家, 积分 73, 距离下一级还需 127 积分
帖子主题精华可用积分73 专家积分0 在线时间35 小时注册时间最后登录
论坛徽章:0
原帖由 cskyrain 于
20:52 发表
server只recv一次,之后阻塞在accept上了,
空间积分0 信誉积分103 UID772339阅读权限20积分681帖子精华可用积分681 专家积分0 在线时间678 小时注册时间最后登录
丰衣足食, 积分 681, 距离下一级还需 319 积分
帖子主题精华可用积分681 专家积分0 在线时间678 小时注册时间最后登录
论坛徽章:0
其实办法多的很啊,接口控制

我要回帖

更多关于 c语言文件读写 的文章

 

随机推荐