DLL Absence

Alex Rice alrice at ARCplanning.com
Thu Aug 7 11:37:01 EDT 2003


On Wednesday, August 6, 2003, at 07:26  PM, jleddy wrote:
> Makes me feel like the small business edition is the no-business 
> edition.

No, it is not a conspiracy to get you to buy the Enterprise license, if 
that is what you are asking.

The Externals SDK was included with Rev 1.x, but mysteriously 
disappeared from 2.0.x. It's not a problem; as someone mentioned it's 
still available from metacard.com (metacard is the run-time engine that 
rev uses). That SDK works with Rev 1.x and 2.x. I second Monte's guess 
they yanked it because it was pretty confusing and without any 
documentation yet.

re: your choices. I know C, Objective-C, (some) C++ and Java but my 
productivity is just off-the-scale when I'm using Revolution as opposed 
to those other languages!

> Really need the format for DLL's, shared libs, etc. Don't have a lot
> time to waist on this.
>
Whether it's a waste of time depends on what you expecting in regards 
to "format for DLL's, shared libs, etc.".

If having instant, seamless access to dlls and shared libraries is your 
primary requirement then Rev is not your best choice. There are 
obviously other benefits Rev can bring to the table though.

Learning to write externals requires a lot of patience and research, in 
my experience. But the payoff is well worth it. I have written an 
external for the CLIPS expert system to be used from Rev. It's about a 
dozen functions and commands, and works very well.

Recently someone wrote an external to control WinAMP or some other 
player software. It took them about 1 day to research how to write the 
external and do it. Probably only 1 or 2 functions. That was very fast. 
It look me a lot longer to write mine.

Rev cannot use just any-old DLL or shared library without some work. 
Say you have xyz.dll. You have to write a small external.dll that is 
glue between some transcript commands and the objects in xyz.dll.

Here is a post I made last week to this list:

----
Hi, I am not an expert at writing externals, but I have been in the 
same boat as you recently. Information on writing externals is very 
scarce. Here are some suggestions:

1) The "External SDK": look at external.c mainly. This is your primary 
reference. It's not commented very well so you gotta guess what's going 
on. Look at the associated .rev stack. It has two apps in the external: 
Game of Life, and Image Compositing. Why it's not included with RR 2.0 
I would like to know.

2) Post questions to this mailing list. A few people here have been 
coding externals in C for years.

3) _Hypertalk Script Language Guide_ by Apple Computer, in Appendix A, 
has the closest thing I can find to a documentation of the externals 
API. The calling interfaces are changed, but the function names are the 
same. Unfortunately there are more Pascal examples than C examples.

4) RR said a tutorial on writing externals is in the works. Right RR 
:-)?

5) So web searches for XFCN and XCMD. XFCN stands for "external 
function", a transcript function handler that's implemented in native 
code. XCMD is "external command" or a transcript command handler that's 
implemented in native code.

Hope this helps,

Alex Rice, Software Developer
Architectural Research Consultants, Inc.
http://ARCplanning.com




More information about the use-livecode mailing list