主题:本人可以解答VC++方面的问题,有问题请进来。。。
xyjs2006
[专家分:820] 发布于 2007-01-18 11:36:00
欢迎大家在这里提问。但如果没有及时回复,请见谅。。。
另:请将问题、现象表述清楚,否则恕无法解答。
声明:本人主要提供解决方案,具体作业和代码请自行处理,谢谢。
------2007年5月14日发:
对不起,大家,近来工作繁忙,对于大家的提问没有及时解答深感抱歉。呵呵。
另:本人长期承接VC++项目(至少2000RMB以上项目),有意发邮件(在个人资料里,邮件只接受外包项目),谢谢!
呵呵,祝大家工作学习顺利!
------2008年1月18日发:
呵呵~~~这帖子发了一周年了~~~很感谢大家的支持,点击率和回帖数都是这个版面几乎最高了,呵呵~~~~~不过本人一直都比较忙,没有回答大家的问题,请见谅~~呵呵~~~
欢迎大家继续支持~~~~
最后更新于:2008-01-18 20:44:00
回复列表 (共581个回复)
411 楼
qiuwangding [专家分:0] 发布于 2007-05-15 13:37:00
#include <iostream>
using namespase std;
void main()
{
extern enter_string(char str[]);
extern delete_string(char str[],char ch);
extern print_string(char str[]);
char c;
static char str[80];
enter_string(str);
cin>>c;
delete_string(str,c);
print_string(str);
}
他说我的错误是
1.cpp
C:\Documents and Settings\Administrator\桌面\问\1.cpp(2) : error C2146: syntax error : missing ';' before identifier 'std'
C:\Documents and Settings\Administrator\桌面\问\1.cpp(2) : error C2873: 'namespase' : symbol cannot be used in a using-declaration
C:\Documents and Settings\Administrator\桌面\问\1.cpp(2) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
但是我是按照书里写的,请帮我改一下
412 楼
STENDJOB [专家分:230] 发布于 2007-05-16 02:52:00
LZ真是个热心人!!
我写了两个刷新的函数
第一个是用兼容DC,第二个是用记录发生的事再重新执行
我想多写几个,可以介绍几中其他的图形刷新函数的编写方法吗?
413 楼
vincent@mj [专家分:0] 发布于 2007-05-16 13:30:00
#include "stdafx.h"
#include "smstest.h"
#include "AdoRWAccessDlg1.h"
#include "About3.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CAdoRWAccessApp theApp; // 在此引用应用类中的theApp来获取库连接指针extern CCcApp theApp;
//就是申明一个CCcApp的全局变量, 以便在任何的视图或对话框中可能通过theApp来访问CCcApp里的公有成员或函数
/////////////////////////////////////////////////////////////////////////////
// CAdoRWAccessDlg dialog
void CAdoRWAccessDlg::OnWriteAccess()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_Name == "" || m_Age == "")
{
AfxMessageBox("姓名和年龄信息不能为空!");
return;
}
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try
{
// 写入各字段值
m_pRecordset->AddNew();
m_pRecordset->PutCollect("Name", _variant_t(m_Name));
m_pRecordset->PutCollect("Age", atol(m_Age));
m_pRecordset->Update();
AfxMessageBox("插入成功!");
// 更新显示其库内容
int nCurSel = m_AccessList.GetCurSel();
OnReadAccess();
m_AccessList.SetCurSel(nCurSel);
// 移动记录指针到新的位置
OnSelchangeListaccess();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
在这行extern CAdoRWAccessApp theApp;编译有错误
错误为missing ';' before identifier 'theApp'
请问高手是什么原因!?
414 楼
思迷思 [专家分:30] 发布于 2007-05-16 14:49:00
请问如何分析此段源代码
// TSCache.h: interface for the CTSCache class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TSCACHE_H__61CC5EB5_4560_4F34_A6DA_AA35B09D79EC__INCLUDED_)
#define AFX_TSCACHE_H__61CC5EB5_4560_4F34_A6DA_AA35B09D79EC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Stockdrv.h"
#include "SPTime.h"
typedef struct _ts_packet_t {
UINT m_nMsgType;
PRCV_DATA m_pRCV_DATA;
} TS_PACKET, PTS_PACKET;
typedef CArray< TS_PACKET, TS_PACKET &> CTSPacketArray;
class CTSCache
{
public:
CTSCache();
virtual ~CTSCache();
void SetLocalLatest(CSPTime t);
CSPTime GetLocalLatest();
static CTSCache & GetInstance();
void ClearReceiveBuffer() { m_nBufLen = 0; }
// decode net received data
int OnReceive( BYTE * buf, size_t len );
int DecodePacket( );
int FindFirstPacketLength( );
size_t AlignBuffer( int nStart, BOOL bRemovePrev );
int TryGetPacket( int nPacketLen );
int DiscardPacket( int nPacketLen );
// packets operation
BOOL PushPacket( UINT nMsgType, PRCV_DATA pRCV_DATA );
BOOL PopPacket( UINT & nMsgType, PRCV_DATA & pRCV_DATA );
void FreePacket( PRCV_DATA pRCV_DATA );
// set report
BOOL StoreReports( );
BOOL LoadReports( );
BOOL ReserveReportsSize( int size );
BOOL PushReport( int nNo, RCV_REPORT_STRUCTEx * pBuf );
BOOL PushReport( char * pszStockCode, RCV_REPORT_STRUCTEx * pBuf );
int PushReport( RCV_REPORT_STRUCTEx * pBuf, int size );
// get report
int GetTotalNumber();
BOOL GetStockByNoEx( int nNo, RCV_REPORT_STRUCTEx * pBuf );
BOOL GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf);
protected:
CSPTime m_tmLocalLatest;
BYTE m_buffer[0x80000]; // 512k bytes buffer
size_t m_nBufLen;
CCriticalSection m_mutexBuffer;
CTSPacketArray m_aPackets;
CCriticalSection m_mutexPackets;
CMapStringToPtr m_mapReports;
CArray<RCV_REPORT_STRUCTEx, RCV_REPORT_STRUCTEx &> m_aReports;
CCriticalSection m_mutexReports;
};
#endif // !defined(AFX_TSCACHE_H__61CC5EB5_4560_4F34_A6DA_AA35B09D79EC__INCLUDED_)
415 楼
bubblelch [专家分:0] 发布于 2007-05-16 15:36:00
你好热心人,我想用C++完成对PCI口中断的控制
是这样的,我将一个信号线接到了PCI口的INTA#上,这个口的性质是低电平触发中断,我想用C++拾取这个中断,跳入中断子程序。
应该怎么样实现呢?谢谢 期待你的答复
416 楼
podie881111 [专家分:190] 发布于 2007-05-16 23:10:00
对话框的弹出问题:
如:语句CMyDialog dlg;
dlg.Domodal();
与语句 CMyDialog dlg;
if(dlg.Domodal()==1)
{;}
的区别?if语句是什么意思了??
谢谢!!
417 楼
fyg0203jsj [专家分:90] 发布于 2007-05-16 23:21:00
背景:
我现在用单文档能显示位图,既每用"打开",就能显示一个位图.
想解决的问题:
我想把显示的位图经过处理在刚才显示的位图的右面显示.这样就能看见原图象和处理后的图象了(就想分屏),把VIEW分成左右两部分.请给出解决的思路和具体的函数?谢谢...非常感谢..
418 楼
mebachelor [专家分:0] 发布于 2007-05-17 09:22:00
单文档静态切分窗口中,新建一个基类是CFormView的对话框,要求位于主框架的右边,在对话框的编辑控件中输入文字,点击发送按钮后,在左边的视中显示。
现在的问题是,好像新建的视中没有定义GetDocument()函数,自己照着默认视中的添加也不行,是不是CFormView类没有这个函数?没有这个函数,那又怎么建立两个视间的联系?
望高人指点迷津,急!谢谢
419 楼
lisypro [专家分:240] 发布于 2007-05-17 12:46:00
学习HOOK是不是一要学习汇编呀
420 楼
hn_lijianguo [专家分:540] 发布于 2007-05-17 17:45:00
#include <iostream>
#include <cstdlib>
#include <cctype>
#include <string>
class Error {};
class Calculator
{
int pos;
std::string expr;
int addsubt();
int multdiv();
int number() throw(Error);
public:
Calculator(){}
int Compute(const std::string& str) throw(Error);
};
int Calculator::Compute(const std::string& str) throw(Error)
{
int rtn=0;
try
{
pos=0;
expr=str;
rtn=addsubt();
if (pos<expr.length() && expr[pos]!='\0')
throw Error();
}
catch(Error)
{
std::cout<<' \r';
while (pos--)
std::cout<<' ';
std::cout<<"^ syntax error"<<std::endl<<'\a';
throw;
}
return 0;
}
int Calculator::addsubt()
{ int qu=1;
int rtn=multdiv();
while (expr[pos]=='+' || expr[pos]=='-')
{
int op=expr[pos++];
int opr2=multdiv();
if(op=='+')
rtn+=opr2;
else
rtn-=opr2;
}
if(!expr[pos])
std::cout<<rtn<<std::endl;
return rtn;
}
int Calculator::multdiv()
{
int rtn=number();
while (expr[pos]=='*' || expr[pos]=='/')
{
int op=expr[pos++];
int opr2=number();
if(op=='*')
rtn*=opr2;
else
rtn/=opr2;
}
return rtn;
}
int Calculator::number() throw(Error)
{
int rtn;
if(expr[pos]=='(')
{
pos++;
rtn=addsubt();
if(expr[pos++]!=')')
throw Error();
}
else
{
if(!isdigit(expr[pos]))
throw Error();
char ans[80]= "0";
int i=0;
while ( isdigit(expr[pos]) && pos<expr.length())
ans[i++]=expr[pos++];
ans[i]='\0';
rtn=atoi(ans);
}
return rtn;
}
int main()
{
int ans;
do
{
std::cout<<"Enter expression (o to quit):"<<std::endl;
std::string expr;
std::cin>>expr;
try
{
Calculator calc;
ans=calc.Compute(expr);
if(ans != 0)
std::cout<< ans <<std::endl;
}
catch(Error)
{
std::cout<<"Try again"<<std::endl;
ans=1;
}
}
while(ans != 0);
return 0;
}
我来回复