回 帖 发 新 帖 刷新版面

主题:本人可以解答VC++方面的问题,有问题请进来。。。

欢迎大家在这里提问。但如果没有及时回复,请见谅。。。
另:请将问题、现象表述清楚,否则恕无法解答。

声明:本人主要提供解决方案,具体作业和代码请自行处理,谢谢。


------2007年5月14日发:

对不起,大家,近来工作繁忙,对于大家的提问没有及时解答深感抱歉。呵呵。

另:本人长期承接VC++项目(至少2000RMB以上项目),有意发邮件(在个人资料里,邮件只接受外包项目),谢谢!

呵呵,祝大家工作学习顺利!

------2008年1月18日发:
呵呵~~~这帖子发了一周年了~~~很感谢大家的支持,点击率和回帖数都是这个版面几乎最高了,呵呵~~~~~不过本人一直都比较忙,没有回答大家的问题,请见谅~~呵呵~~~
欢迎大家继续支持~~~~

回复列表 (共581个回复)

411 楼

#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 楼

LZ真是个热心人!!
我写了两个刷新的函数
第一个是用兼容DC,第二个是用记录发生的事再重新执行
我想多写几个,可以介绍几中其他的图形刷新函数的编写方法吗?

413 楼

#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 楼

请问如何分析此段源代码
// 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 楼

你好热心人,我想用C++完成对PCI口中断的控制
是这样的,我将一个信号线接到了PCI口的INTA#上,这个口的性质是低电平触发中断,我想用C++拾取这个中断,跳入中断子程序。
应该怎么样实现呢?谢谢 期待你的答复

416 楼

对话框的弹出问题:
如:语句CMyDialog dlg;
       dlg.Domodal();
与语句 CMyDialog dlg;
       if(dlg.Domodal()==1)
       {;}
的区别?if语句是什么意思了??
谢谢!!

417 楼

背景:
我现在用单文档能显示位图,既每用"打开",就能显示一个位图.

想解决的问题:

我想把显示的位图经过处理在刚才显示的位图的右面显示.这样就能看见原图象和处理后的图象了(就想分屏),把VIEW分成左右两部分.请给出解决的思路和具体的函数?谢谢...非常感谢..

418 楼

单文档静态切分窗口中,新建一个基类是CFormView的对话框,要求位于主框架的右边,在对话框的编辑控件中输入文字,点击发送按钮后,在左边的视中显示。
现在的问题是,好像新建的视中没有定义GetDocument()函数,自己照着默认视中的添加也不行,是不是CFormView类没有这个函数?没有这个函数,那又怎么建立两个视间的联系?
望高人指点迷津,急!谢谢

419 楼

学习HOOK是不是一要学习汇编呀

420 楼

#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;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册