www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - [VOLE] : need help

reply "Mario Lecafe" <m.lecafe free.fr> writes:
Hello,

I want to create a C++ program COM to drive Excel (like using Perl
Win32::OLE or Python

win32com.client) with the open-source C++ libraries
VOLE-0.4.4/stlsoft-1.9.46

My configuration :
Windows XP and the GNU GCC 3.4.2 compiler (mingw32)

I'm trying to use the example "Excel.driver.cpp" with my compiler
 G++ -I%VOLE%/include -I%STLSOFT%/include ....

but it makes error that I can't resolve (with VOLE 0.5.1/stlsoft-1.9.48 too)

Error :

vole::object  xlApp   =   vole::object::create(L"Excel.Application",
CLSCTX_LOCAL_SERVER);

error: no matching function for call to `vole::object::create(const
wchar_t[18], tagCLSCTX)'

C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|524|note: candidates are:
static vole::object

vole::object::create(const CLSID&)
C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|537|note:
static vole::object

vole::object::create(const CLSID&, DWORD,
vole::coercion_level::coercion_level)
C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|550|note:
static vole::object

vole::object::create(const WCHAR*)
C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|563|note:
static vole::object

vole::object::create(const WCHAR*, DWORD,
vole::coercion_level::coercion_level)
C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|577|note:
static vole::object

vole::object::create(const char*)
C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|582|note:
static vole::object

vole::object::create(const char*, DWORD,
vole::coercion_level::coercion_level)


Please Help me to continue.

Another question :
Is it possible to use VOLE/stlsoft libraries with cross-compiling for win32
under linux ?

Note :
I am a C++ beginner, I'm french and my English is not good, please answer me
in simple words.


Best,

Mario
Sep 14 2008
next sibling parent reply Matt Wilson <stlsoft gmail.com> writes:
Mario Lecafe Wrote:

 Hello,
 
 I want to create a C++ program COM to drive Excel (like using Perl
 Win32::OLE or Python win32com.client) with the open-source C++
 libraries VOLE-0.4.4/stlsoft-1.9.46
 
 My configuration :
 Windows XP and the GNU GCC 3.4.2 compiler (mingw32)
 
 I'm trying to use the example "Excel.driver.cpp" with my compiler
  G++ -I%VOLE%/include -I%STLSOFT%/include ....
 
 but it makes error that I can't resolve (with VOLE 0.5.1/stlsoft-1.9.48 too)
 
 Error :
 
 vole::object  xlApp   =   vole::object::create(L"Excel.Application",
 CLSCTX_LOCAL_SERVER);
 
 error: no matching function for call to `vole::object::create(const
 wchar_t[18], tagCLSCTX)'
 
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|524|note: candidates are:
 static vole::object
 
 vole::object::create(const CLSID&)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|537|note:
 static vole::object
 
 vole::object::create(const CLSID&, DWORD,
 vole::coercion_level::coercion_level)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|550|note:
 static vole::object
 
 vole::object::create(const WCHAR*)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|563|note:
 static vole::object
 
 vole::object::create(const WCHAR*, DWORD,
 vole::coercion_level::coercion_level)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|577|note:
 static vole::object
 
 vole::object::create(const char*)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|582|note:
 static vole::object
 
 vole::object::create(const char*, DWORD,
 vole::coercion_level::coercion_level)
 
 
 Please Help me to continue.
 
 Another question :
 Is it possible to use VOLE/stlsoft libraries with cross-compiling for win32
 under linux ?
 
 Note :
 I am a C++ beginner, I'm french and my English is not good, please answer me
 in simple words.
 
 
 Best,
 
 Mario

I think the problem is simply that the create() method changed to have three (non-default) arguments in version 0.2.1. Clearly I have forgotten to update the example, for which I apologise. Please look at test/scratch/Excel.driver.test. HTH Matt
Sep 15 2008
parent reply "Mario Lecafe" <m.lecafe free.fr> writes:
"Matt Wilson" <stlsoft gmail.com> a écrit dans le message de news:
galnu4$1e04$1 digitalmars.com...
 Mario Lecafe Wrote:

 Hello,

 I want to create a C++ program COM to drive Excel (like using Perl
 Win32::OLE or Python win32com.client) with the open-source C++
 libraries VOLE-0.4.4/stlsoft-1.9.46

 My configuration :
 Windows XP and the GNU GCC 3.4.2 compiler (mingw32)

 I'm trying to use the example "Excel.driver.cpp" with my compiler
  G++ -I%VOLE%/include -I%STLSOFT%/include ....

 but it makes error that I can't resolve (with VOLE 0.5.1/stlsoft-1.9.48
 too)

 Error :

 vole::object  xlApp   =   vole::object::create(L"Excel.Application",
 CLSCTX_LOCAL_SERVER);

 error: no matching function for call to `vole::object::create(const
 wchar_t[18], tagCLSCTX)'

 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|524|note: candidates
 are:
 static vole::object

 vole::object::create(const CLSID&)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|537|note:
 static vole::object

 vole::object::create(const CLSID&, DWORD,
 vole::coercion_level::coercion_level)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|550|note:
 static vole::object

 vole::object::create(const WCHAR*)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|563|note:
 static vole::object

 vole::object::create(const WCHAR*, DWORD,
 vole::coercion_level::coercion_level)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|577|note:
 static vole::object

 vole::object::create(const char*)
 C:\opensrc\vole\vole-0.4.4\include\vole\object.hpp|582|note:
 static vole::object

 vole::object::create(const char*, DWORD,
 vole::coercion_level::coercion_level)


 Please Help me to continue.

 Another question :
 Is it possible to use VOLE/stlsoft libraries with cross-compiling for
 win32
 under linux ?

 Note :
 I am a C++ beginner, I'm french and my English is not good, please answer
 me
 in simple words.


 Best,

 Mario

I think the problem is simply that the create() method changed to have three (non-default) arguments in version 0.2.1. Clearly I have forgotten to update the example, for which I apologise. Please look at test/scratch/Excel.driver.test. HTH Matt

Hello Matt, Thank's for your answers, I have used the test/scratch/Excel.driver.test.cpp with the good create() methode. The errors have disappeared, but there are many others "undefined reference to..." I have used this command line with Dev-Cpp or MingW : G++ -I%VOLE%/include -I%STLSOFT%/include -o myTest.exe C:\opensrc\vole\vole-0.4.4\test\Excel.driver.test\Excel.driver.test.cpp Can you help me again ? Best, Mario
Sep 25 2008
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
<snip>

 Hello Matt,

 Thank's for your answers, I have used the test/scratch/Excel.driver.test.cpp
 with the good create() methode.
 The errors have disappeared, but there are many others "undefined reference
 to..."

 I have used this command line with Dev-Cpp or MingW :
 G++ -I%VOLE%/include -I%STLSOFT%/include -o myTest.exe
 C:\opensrc\vole\vole-0.4.4\test\Excel.driver.test\Excel.driver.test.cpp

 Can you help me again ?

You'll have to link to liboleaut32.a and libole32.a I can't remember how off the top of my head, but I think if you try "g++ <... other linker options ...> -lole32 -loleaut32" it might be all that you need. HTH Matt
Sep 26 2008
parent reply Mario Lecafe <m.lecafe free.fr> writes:
Le 26/09/2008, Matthew Wilson a supposé :
 <snip>

 Hello Matt,
 
 Thank's for your answers, I have used the test/scratch/Excel.driver.test.cpp
 with the good create() methode.
 The errors have disappeared, but there are many others "undefined reference
 to..."
 
 I have used this command line with Dev-Cpp or MingW :
 G++ -I%VOLE%/include -I%STLSOFT%/include -o myTest.exe
 C:\opensrc\vole\vole-0.4.4\test\Excel.driver.test\Excel.driver.test.cpp
 
 Can you help me again ?

You'll have to link to liboleaut32.a and libole32.a I can't remember how off the top of my head, but I think if you try "g++ <... other linker options ...> -lole32 -loleaut32" it might be all that you need. HTH Matt

Hello Matt, Thanks for all your answers, I have tried the command line with the specified libraries. I had some errors links. After some searches on the web, I finally found another missing library (libuuid.a) Now the command line "G++ -I%VOLE%/include -I%STLSOFT%/include -o myTest.exe C:\opensrc\vole\vole-0.4.4\test\Excel.driver.test\Excel.driver.test.cpp -lole32 -loleaut32 -luuid" compiles the example code. Thanks again for your help Best, Mario
Oct 13 2008
parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
 Thanks for all your answers,

 I have tried the command line with the specified libraries.
 I had some errors links.
 After some searches on the web, I finally found another missing library
 (libuuid.a)

 Now the command line "G++ -I%VOLE%/include -I%STLSOFT%/include -o
 myTest.exe
 C:\opensrc\vole\vole-0.4.4\test\Excel.driver.test\Excel.driver.test.cpp
 -lole32 -loleaut32 -luuid" compiles the example code.

 Thanks again for your help


 Best,

 Mario

You're most welcome. Matt
Oct 15 2008
prev sibling parent "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
 Another question :
 Is it possible to use VOLE/stlsoft libraries with cross-compiling for win32
 under linux ?

Yes for STLSoft No for VOLE, because COM is a Windows-specific thing. HTH Matt
Sep 16 2008