我用ATL产生一个控件IPRecord,然后将这个控件加入到测试程序中,在资源视图中加入ActiveX控件,将控件放到测试程序的Form上,测试程序是doc/view的应用程序。
然后,产生一个该控件的变量m_ctrl,同时控件会产生以它的名字命令的IpRecord1.h和IpRecord1.cpp文件。
但是我在编译的时候总是说IpRecord1.h中有错误,错误发生在文件中InitTsrv()这一行。
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“;”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2059: 语法错误 : “)”
d:\test\IPRecordPro\iprecord1.h(50): error C2334: “{”的前面有意外标记;跳过明显的函数体
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“;”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2059: 语法错误 : “)”
d:\test\IPRecordPro\iprecord1.h(50): error C2334: “{”的前面有意外标记;跳过明显的函数体
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2143: 语法错误 : 缺少“;”(在“字符串”的前面)
d:\test\IPRecordPro\iprecord1.h(49): error C2059: 语法错误 : “)”
d:\test\IPRecordPro\iprecord1.h(50): error C2334: “{”的前面有意外标记;跳过明显的函数体IPRecord1.h的文件如下:#pragma once// 计算机生成了由 Microsoft Visual C++ 创建的 IDispatch 包装类// 注意:不要修改此文件的内容。如果此类由
//  Microsoft Visual C++ 重新生成,您的修改将被改写。/////////////////////////////////////////////////////////////////////////////
// CIprecord1 包装类class CIprecord1 : public CWnd
{
protected:
DECLARE_DYNCREATE(CIprecord1)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x3A2575C5, 0xCE28, 0x4D34, { 0xB3, 0xFF, 0xBF, 0x7C, 0xF, 0x9D, 0x1F, 0xDA } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID, 
CCreateContext* pContext = NULL)

return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); 
}    BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, 
UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)

return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey); 
}// 属性
public:
// 操作
public:// IIPRecord// Functions
//void InitTsrv(LPCTSTR INIFILE)
{
static BYTE parms[] = VTS_BSTR ;
InvokeHelper(0x1, DISPATCH_METHOD, VT_EMPTY, NULL, parms, INIFILE);
}
void StopTsrv()
{
InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}// Properties
//};