一个菜鸟的VC基本语法问题,书上没有答案,请各位大侠来解决!

hjfgcx 2001-11-18 10:28:12
是一个别人的样板程序(已在使用中),其中的一个.H文件,可有几个我看不懂.
1.import 和no_namespace的语法我从未见过,那是什么意思?
2._RecordsetPtr 是什么东西?怎么可以用_开头?
3.__declspec( dllexport )是什么东西?
4.CTypedPtrMap<CMapStringToString, CString, CString> 是什么东西?
5.class DllExport CDBAccess的父类是什么?DllExport是什么意思?
6.operator = ( CDBAccess &db );是什么意思?

#if !defined(AFX_UCLIB_H__C0C8AEFE_BB57_11D4_AFEC_00010304EF3E__INCLUDED_)
#define AFX_UCLIB_H__C0C8AEFE_BB57_11D4_AFEC_00010304EF3E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")

typedef class CTypedPtrMap<CMapStringToString, CString, CString> tringMap;

#define DllExport __declspec( dllexport )

class DllExport CDBConnection {
public :

CDBConnection();
virtual ~CDBConnection();

CString m_ErrorMsg;

bool Connect( LPCTSTR pDSN, LPCTSTR pUserID, LPCTSTR pPassWd );
bool Connect( LPCTSTR pDSN, LPCTSTR pUserID, LPCTSTR pPassWd, long nTimeout, long nRetry );
_RecordsetPtr OpenTable( LPCTSTR pSQL, CursorTypeEnum cType, LockTypeEnum lType );
_RecordsetPtr ExecuteSQL( LPCTSTR pSQL );
_RecordsetPtr TableOpen( LPCTSTR pTableName );
bool BeginTran( long *pLevel );
bool CommitTran();
bool RollbackTran(); protected :

_ConnectionPtr m_pConnection;
};

class DllExport CDBAccess
{
public :

CDBAccess( CDBConnection *pConnection );
CDBAccess();
virtual ~CDBAccess();

CString m_ErrorMsg;
void SetConnection( CDBConnection *pConnection )
{
m_pConnection = pConnection;
}
bool IsEOF();
long GetRecordCount();
CString GetValue( LPCTSTR pFieldName );
bool SetValue( LPCTSTR pFieldName, LPCTSTR pData );
bool MoveFirst();
bool MoveLast();
bool MoveNext();
bool MovePrev();
bool AddNew();
bool Update();
bool Delete();

operator = ( CDBAccess &db );

bool TableOpen();
bool OpenTable( LPCTSTR pSQL, CursorTypeEnum cType, LockTypeEnum lType );
bool OpenTable( LPCTSTR pFields,
LPCTSTR pDatas,
CursorTypeEnum cType = adOpenDynamic,
LockTypeEnum lType = adLockPessimistic );
bool IsExactRecord( LPCTSTR pFields, LPCTSTR pDatas );
virtual bool FindByFqKey ( LPCTSTR pKey = NULL ); virtual bool FindByFqKeyL( LPCTSTR pKey = NULL ); bool FindBySelectKey ( LPCTSTR pFields, LPCTSTR pDatas ); bool FindBySelectKeyL ( LPCTSTR pFields, LPCTSTR pDatas ); bool FindBySQL( LPCTSTR pSQL );
bool ExecuteSQL( LPCTSTR pSQL );
public :

CString m_TableName; CString m_KeyField; CursorTypeEnum m_cType; LockTypeEnum m_lType;
protected :

_RecordsetPtr m_pRs; CDBConnection *m_pConnection;
StringMap m_Fields; bool m_bInsert; CString CreateSQL( LPCTSTR pFields, LPCTSTR pDatas, bool Lock );
};
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtky_limi 2001-11-18
  • 打赏
  • 举报
回复
他可能是做一个dll.前面的参数表示他是否要输出这个函数或类
Hover 2001-11-18
  • 打赏
  • 举报
回复
学好ADO再看看这个程序吧。
hjfgcx 2001-11-18
  • 打赏
  • 举报
回复
大哥我不是想研究,
是老板让我改程序,
能不弄懂吗?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧