Board index » cppbuilder » Anyone done/head of Adobe SDK development under Borland?

Anyone done/head of Adobe SDK development under Borland?


2005-04-13 11:21:35 AM
cppbuilder38
I programmer that I am in the process of hiring seems to be very
knowledgeable in the Adobe SDK area. He claims that the only way to do
that kind of development is using Microsoft tools. He even went as far
as claiming that "Microsoft and Borland have different, incompatible
calling conventions".
Comments?
-Ramon
 
 

Re:Anyone done/head of Adobe SDK development under Borland?

"Ramon F Herrera" < XXXX@XXXXX.COM >wrote in message
Quote

I programmer that I am in the process of hiring seems to be very
knowledgeable in the Adobe SDK area. He claims that the only way to do
that kind of development is using Microsoft tools. He even went as far
as claiming that "Microsoft and Borland have different, incompatible
calling conventions".

Comments?

-Ramon
It sounds to me as if your potential employee is confusing "calling
convention" with "name-mangling." The calling convention is defined by the
exported function in a static library or DLL, and so long as the calling
code specifies the correct calling convention when it imports a function at
compile-time (which is usually done via a header file supplied by the
library vendor), it will have no trouble calling that same function at
run-time. Both Microsoft and Borland (and every other vendor I am aware of)
know how to deal with both the standard (Pascal) and the C calling
conventions.
Name-mangling, on the other hand, is an entirely different matter, though it
really only applies to languages that support function overloading.
Microsoft and Borland do use different name-mangling schemes in their
compilers, which makes them unable to share C++ functions exported from a
DLL or a static library. When this happens, a DLL created by a Microsoft
compiler can only be used by a developer who is also using a Microsoft
compiler (the same goes for a DLL created by a Borland compiler).
Generally speaking though, an API that has widespread appeal to many
developers using a variety of languages (such as C, C++, Fortran, Pascal,
Visual Basic, etc) will typically export its functions using the standard
calling convention, which essentially turns off name-mangling. I would
expect Adobe to do this, but as I have no knowledge about the Adobe SDK, I
cannot say one way or the other if they do or not. If the Adobe SDK exports
C++ functions and/or classes, then yes, you will be in trouble because of
name-mangling.
If the SDK is provided in the form of a static library (as opposed to a
DLL), then not only will you have an issue with name-mangling, but also with
object file format, as Borland and Microsoft again use different formats
(one uses COFF and the other uses OMF).
So, basically what it boils down to is, if the SDK is provided in the form
of a DLL and its functions are exported using the standard calling
convention (and thereby disabling name-mangling), then you will have no
trouble using it with Borland compilers. If the SDK is provided in the form
of a static library, or if a DLL exports C++ functions and/or classes, you
will not be able to use it with Borland compilers.
Last minute note: If the SDK is provided in the form of ActiveX components
or COM objects, then again you should also have no trouble using it from
Borland compilers, as ActiveX and COM were both designed (at least in part)
to alleviate problems with vendor incompatibilities.
I hope this helps to answer your questions. I'm sure many others here can
and will provide additional comments, and/or cover things I've missed.
- Dennis
 

Re:Anyone done/head of Adobe SDK development under Borland?

"Dennis Jones" < XXXX@XXXXX.COM >wrote in message
Quote

...using the standard
calling convention, which essentially turns off name-mangling....
Scratch that -- name-mangling is not affected by calling convention. I was
thinking of "extern C".
- Dennis
 

{smallsort}

Re:Anyone done/head of Adobe SDK development under Borland?

I doubt there will be a problem.
DLLs are designed to be used by different languages. That's a large
part of the reason for their existence. It's true that some features of
some languages are handled differently by different compilers but those
are features that implicitly limit the appeal of the DLL as a saleable
product.
Another way to put this:DLLs can export two classes of entity:Things
every language understands and things specific to a particular language.
The only problem you'll get is if Adobe are exporting things that fall
into the second category - but they won't. This is because by doing
that they not only lose compatibility with Borland (irrelevant) they
lose compatibility with languages other than C++ (not irrelevant).
--
Andrue Cope [TeamB]
[Bicester, Uk]
info.borland.com/newsgroups/guide.html
 

Re:Anyone done/head of Adobe SDK development under Borland?

"Ramon F Herrera" wrote:
Quote
I programmer that I am in the process of hiring seems to be very
knowledgeable in the Adobe SDK area. He claims that the only way to do
that kind of development is using Microsoft tools. He even went as far as
claiming that "Microsoft and Borland have different, incompatible calling
conventions".

Whil it may be possible to get Adobe SDK to compile
under BCB, using VC6 will work on the first try.
I had to do this, picked VC, and created wrapper DLL.
If you are testing someone's skill: ask about how
many interfaces are provided by Adobe OCX (2) and
which one is good for what.
That was the hardest to discover for me.
/Pavel