использование 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 ошибка линковки
От: Vi2 Удмуртия http://www.adem.ru
Дата: 27.02.10 08:03
Оценка:
Здравствуйте, 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 ошибка линковки
От: Vi2 Удмуртия http://www.adem.ru
Дата: 27.02.10 10:01
Оценка:
Здравствуйте, 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 ошибка линковки
От: sanat  
Дата: 27.02.10 10:24
Оценка: 9 (1)
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.

На одном буржуйском форуме нашел.
Только так сделал как заработало.
Так и не понял почему, но прокатило.
Спасибо за помошь!!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.