|
Email lists >
UNO Development Kit >
Re: [udk-dev] COM bridge from ooBasic to C++ dll with typelibrary >
Re: [udk-dev] COM bridge from ooBasic to C++ dll with typelibrary
Re: [udk-dev] COM bridge from ooBasic to C++ dll with typelibrary
This post if a part of this thread
|
2007-10-17 01:53:29 |
|
|
Re: COM bridge from ooBasic to C++ dll with typelibrary
|
jjaeger xlstat.com schrieb:
> Thank you for your help.
>
> Is it possible to port the example using the OLE/COM
Uno bridge and still
> having the call in ooBasic of the function unchanged
like
>
> Outval = fplus( inval)
>
> This would at least limit the changes to do the vba
code during the port
> to OpenOffice.
>
> Is there another way than using the VBA statement
Declare Function Lib to
> declare C++ functions in ooBasic. I will have to port
over 200.
I have no idea what the limits are regarding calling
functions directly
from OOo Basic. However, this would probably only work with
argument
types which are similar to UNO types. In other words, if a
function
takes VARIANTs then this will not work. There is the
possibility of
calling automation objects from OOo Basic. That is, you
could put all
your functions in one IDispatch object and use it then from
Basic.
I think there was still a problem with multidimensional
arrays. Apart
from that this could work.
Joachim
>
> Regards
>
> Jürgen
>
> Joachim Lingner <joachim.lingner sun.com> wrote on 10/15/2007 04:49:53 PM:
>
>> Importing a type library is not supported.
>>
>> Joachim
>>
>> jjaeger xlstat.com wrote:
>>> Hello,
>>>
>>> I am porting a C++ COM application that is
called from Excel via VBA
> to
>>> application that is called from Calc via
ooBasic.
>>>
>>> I am new to the OpenOffice environment and have
some basic questions
> to
>>> learn the way ooBasic uses the OLE/COM Uno
bridge.
>>>
>>> Here is my C++ example:
>>>
>>> MYSHAREDLIB_API double __stdcall fplus (double
invalue)
>>> {
>>> return invalue + 1.0;
>>> }
>>>
>>> And here the type library file .odl:
>>>
>>> import "oaidl.idl";
>>> import "ocidl.idl";
>>> [
>>>
uuid(7D4B1C8E-69AF-4082-90CF-E07FD904A4DA),
>>> helpstring("MySharedLib"),
>>> lcid(0x0409),
>>> version(1.5)
>>> ]
>>> library MySharedLib
>>> {
>>> [
>>> helpstring("Functions exported by
MySharedLib.dll"),
>>> version(1.5),
>>> dllname("MySharedLib.dll")
>>> ]
>>> module MSL
>>> {
>>> [
helpstring("fplus"), entry("fplus") ]
> double
>>> fplus( [in] double invalue );
>>> }
>>> }
>>>
>>> I can call this .dll in Calc using the VBA
equivalent of Declare
> Function
>>> Declare Function fplus Lib ?MySharedLib.dll?
(ByVal invalue as
> Double) as
>>> Double
>>>
>>> With a call example like this in the ooBasic
code
>>>
>>> Outval = fplus( inval)
>>>
>>> How can I import the information about fplus
using the type library
> .tlb ?
>>> In Excel I can use the Tools -> References?
Menu to add the
> typelibrary
>>> information to my Excel vba code as a
reference.
>>>
>>>
>>>
>>>
>>> Regards
>>>
>>> JJ
>>
------------------------------------------------------------
---------
>> To unsubscribe, e-mail: dev-unsubscribe udk.openoffice.org
>> For additional commands, e-mail: dev-help udk.openoffice.org
>>
>>
>
------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribe udk.openoffice.org
For additional commands, e-mail: dev-help udk.openoffice.org
|
|
|
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|