использование Excel ошибка линковки
От:
sanat
Дата: 27.02.10 07:25
Оценка:
неподскажете в чем трабл?
У меня Excel 2007, Visual Studio 2005
подключаю Excel так
#import "progid:Excel.Sheet.8" auto_search auto_rename rename_search_namespace("Office9") \
rename("DialogBox","_DialogBox") \
rename("RGB","_RGB") \
exclude("IFont","IPicture")
Далее использую так:
using namespace Excel;
_ApplicationPtr pXL;
try
{
pXL.CreateInstance(L"Excel.Application");
pXL->Visible[0] = VARIANT_TRUE;
WorkbooksPtr pBooks = pXL->Workbooks;
// Создание новой книги
_WorkbookPtr pBook = pBooks->Add((long)xlWorksheet);
_WorksheetPtr pSheet = pXL->ActiveSheet;
pSheet->Name = L"Реестр за !";
RangePtr pRange = pSheet->Cells;
RangePtr pCell;
const _variant_t r1(0),r2(1);
pCell = pRange->Item[3][1]; // A3
и на последней строчке линковщик ругается
1>PrintMng.obj : error LNK2019: unresolved external symbol "long __cdecl _com_dispatch_method(struct IDispatch *,long,unsigned short,unsigned short,void *,wchar_t const *,...)" (?_com_dispatch_method@@YAJPAUIDispatch@@JGGPAXPB_WZZ) referenced in function "public: class _variant_t __thiscall Excel::Range::GetItem(class _variant_t const &,class _variant_t const &)" (?GetItem@Range@Excel@@QAE?AV_variant_t@@ABV3@0@Z)
1>Debug\officenbt.exe : fatal error LNK1120: 1 unresolved externals
если коментирую последнюю строчку все работает супер.
В список либов студии указал путь к excelю и не помогает. Помогите очень нада.
Re: использование Excel ошибка линковки
Здравствуйте, sanat, Вы писали:
S>неподскажете в чем трабл?
1>>PrintMng.obj : error LNK2019: unresolved external symbol "long __cdecl _com_dispatch_method(struct IDispatch *,long,unsigned short,unsigned short,void *,wchar_t const *,...)" (?_com_dispatch_method@@YAJPAUIDispatch@@JGGPAXPB_WZZ) referenced in function "public: class _variant_t __thiscall Excel::Range::GetItem(class _variant_t const &,class _variant_t const &)" (?GetItem@Range@Excel@@QAE?AV_variant_t@@ABV3@0@Z)
1>>Debug\officenbt.exe : fatal error LNK1120: 1 unresolved externals
AFAIR, нужно добавить библиотеку comsupp.lib каким-либо образом.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: использование Excel ошибка линковки
От:
sanat
Дата: 27.02.10 08:43
Оценка:
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, sanat, Вы писали:
S>>неподскажете в чем трабл?
1>>>PrintMng.obj : error LNK2019: unresolved external symbol "long __cdecl _com_dispatch_method(struct IDispatch *,long,unsigned short,unsigned short,void *,wchar_t const *,...)" (?_com_dispatch_method@@YAJPAUIDispatch@@JGGPAXPB_WZZ) referenced in function "public: class _variant_t __thiscall Excel::Range::GetItem(class _variant_t const &,class _variant_t const &)" (?GetItem@Range@Excel@@QAE?AV_variant_t@@ABV3@0@Z)
1>>>Debug\officenbt.exe : fatal error LNK1120: 1 unresolved externals
Vi2>AFAIR, нужно добавить библиотеку comsupp.lib каким-либо образом.
#pragma comment (lib,"comsupp.lib")
результат тотже ((((
Re[3]: использование Excel ошибка линковки
Здравствуйте, sanat, Вы писали:
S>#pragma comment (lib,"comsupp.lib")
S>результат тотже ((((
И правильно. Потому что
?_com_dispatch_method@@YAJPAUIDispatch@@JGGPAXPBGZZ == long __cdecl _com_dispatch_method(struct IDispatch *,long,unsigned short,unsigned short,void *,unsigned short const *,...)
определены в comsupp.lib и comsuppd.lib, а
?_com_dispatch_method@@YAJPAUIDispatch@@JGGPAXPB_WZZ == long __cdecl _com_dispatch_method(struct IDispatch*,long,unsigned short,unsigned short,void *,wchar_t const *,...)
определены в comsuppw.lib и comsuppwd.lib.
Вот так определены в COMDEF.H:
#ifdef _NATIVE_WCHAR_T_DEFINED
# ifdef _DEBUG
# pragma comment(lib, "comsuppwd.lib" )
# else
# pragma comment(lib, "comsuppw.lib" )
# endif
#else
# ifdef _DEBUG
# pragma comment(lib, "comsuppd.lib" )
# else
# pragma comment(lib, "comsupp.lib" )
# endif
#endif
И я не понимаю, почему у тебя цепляется не та библиотека.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[4]: использование Excel ошибка линковки
Vi2>И я не понимаю, почему у тебя цепляется не та библиотека.
А вот почему.
я и собственно так и сделал цеплял дебажную либу.. но это не важно.
Another option to try is "Treat wchar_t as Built-in Type" (/Zc:wchar_t)
under Project | Properties | C/C++ | Language . Whatever it is set to
now, try the opposite setting.
На одном буржуйском форуме нашел.
Только так сделал как заработало.
Так и не понял почему, но прокатило.
Спасибо за помошь!!!!
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить