一个菜鸟的VC基本语法问题,书上没有答案,请各位大侠来解决!
是一个别人的样板程序(已在使用中),其中的一个.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 );
};