void CXxDlg::OnOK()
{
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
//创建Excel 2000服务器(启动Excel)
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}
ExcelApp.SetVisible(false);
//利用模板文件建立新文档
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CString strPath = path;
strPath += "\\stureporttemplate";
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
。。。。
。。。。
。。。。
。。。。
CDialog::OnOK();
}
编译时提示出错:
--------------------Configuration: xx - Win32 Debug--------------------
Compiling...
xxDlg.cpp
E:\xx\xxDlg.cpp(193) : error C2065: '_variant_t' : undeclared identifier
E:\xx\xxDlg.cpp(213) : error C2065: 'myexamsubmarkset_report' : undeclared identifier
E:\xx\xxDlg.cpp(213) : error C2227: left of '->MoveFirst' must point to class/struct/union
E:\xx\xxDlg.cpp(214) : error C2227: left of '->GetRecordCount' must point to class/struct/union
E:\xx\xxDlg.cpp(217) : error C2227: left of '->m_studentid' must point to class/struct/union
E:\xx\xxDlg.cpp(219) : error C2227: left of '->m_code' must point to class/struct/union
E:\xx\xxDlg.cpp(221) : error C2227: left of '->m_grade' must point to class/struct/union
E:\xx\xxDlg.cpp(223) : error C2227: left of '->m_kind' must point to class/struct/union
E:\xx\xxDlg.cpp(224) : error C2227: left of '->m_examdate' must point to class/struct/union
E:\xx\xxDlg.cpp(227) : error C2227: left of '->MoveNext' must point to class/struct/union
E:\xx\xxDlg.cpp(232) : error C2065: 'vtMissing' : undeclared identifier
Error executing cl.exe.
xx.exe - 11 error(s), 0 warning(s)
_variant_t这个为何会出错???求EXCEL高手指点下
6 个解决方案
#1
包含头文件 comutil.h
#2
包含头文件 comutil.h后
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
这两句话会报以下错误
--------------------Configuration: xx - Win32 Debug--------------------
Compiling...
xxDlg.cpp
Linking...
xxDlg.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
xxDlg.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
Debug/xx.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...
xx.exe - 3 error(s), 0 warning(s)
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
这两句话会报以下错误
--------------------Configuration: xx - Win32 Debug--------------------
Compiling...
xxDlg.cpp
Linking...
xxDlg.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
xxDlg.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
Debug/xx.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...
xx.exe - 3 error(s), 0 warning(s)
#3
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
->
wbMyBook.AttachDispatch(wbsMyBooks.Add(CComVariant(strPath)));
->
wbMyBook.AttachDispatch(wbsMyBooks.Add(CComVariant(strPath)));
#4
这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交
流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六@二@
八@七@八@零@四@三。另外,这个群里可以接项目。
流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六@二@
八@七@八@零@四@三。另外,这个群里可以接项目。
#5
链接有问题是因为你只包括了头文件comutil.h,而没有链接对应的库
comsuppw.lib 或 comsuppwd.lib
加入的方法是
工程-->属性-->链接-->输入-->写上对应的库名就可以了
或加入代码
#pragma comment( lib, "comsuppwd.lib" )
这两个方法,用哪个都可以
comsuppw.lib 或 comsuppwd.lib
加入的方法是
工程-->属性-->链接-->输入-->写上对应的库名就可以了
或加入代码
#pragma comment( lib, "comsuppwd.lib" )
这两个方法,用哪个都可以
#6
楼上正解,加上引入库即可。
#1
包含头文件 comutil.h
#2
包含头文件 comutil.h后
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
这两句话会报以下错误
--------------------Configuration: xx - Win32 Debug--------------------
Compiling...
xxDlg.cpp
Linking...
xxDlg.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
xxDlg.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
Debug/xx.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...
xx.exe - 3 error(s), 0 warning(s)
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
这两句话会报以下错误
--------------------Configuration: xx - Win32 Debug--------------------
Compiling...
xxDlg.cpp
Linking...
xxDlg.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
xxDlg.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
Debug/xx.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...
xx.exe - 3 error(s), 0 warning(s)
#3
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
->
wbMyBook.AttachDispatch(wbsMyBooks.Add(CComVariant(strPath)));
->
wbMyBook.AttachDispatch(wbsMyBooks.Add(CComVariant(strPath)));
#4
这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交
流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六@二@
八@七@八@零@四@三。另外,这个群里可以接项目。
流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六@二@
八@七@八@零@四@三。另外,这个群里可以接项目。
#5
链接有问题是因为你只包括了头文件comutil.h,而没有链接对应的库
comsuppw.lib 或 comsuppwd.lib
加入的方法是
工程-->属性-->链接-->输入-->写上对应的库名就可以了
或加入代码
#pragma comment( lib, "comsuppwd.lib" )
这两个方法,用哪个都可以
comsuppw.lib 或 comsuppwd.lib
加入的方法是
工程-->属性-->链接-->输入-->写上对应的库名就可以了
或加入代码
#pragma comment( lib, "comsuppwd.lib" )
这两个方法,用哪个都可以
#6
楼上正解,加上引入库即可。