CanaimaSoft
f90SQL
Search
Contents
f90ADO
Links
f90VB
 
 
 
 

Frequently asked questions (FAQ) about f90VB

Note: This section contains only general FAQs. For technical FAQs, please go to the f90VB support page.

Table of Contents


What is f90VB?

f90VB is a set of four Fortran libraries and a Type Library browser utility (TLView). These four library gives you all the functionality your Fortran programs need to easily and efficiently handle data types that are native to COM/ActiveX and Visual Basic and that are not supported by Fortran. These data types include BStrings (COM-style character strings), Safe Arrays (COM-style arrays and vectors) and Variants (a COM self-described data type that can contain many types of data). In addition, the Automation Library of f90VB also let you instantiate and manipulate Automation-enabled COM/ActiveX objects. COM also uses other data types, like integers and single-precision reals, but these data types are directly compatible with their Fortran equivalents. The libraries included in f90VB make very easy to create automation controllers in Fortran, as well as interfacing Fortran and Visual Basic programs and subroutines.

Back to Top

For what Fortran compilers is f90VB available?

f90VB is available for Absoft Pro Fortran, Compaq Visual Fortran and Lahey Fortran 95. So far these are the only compilers supported. Support for Salford Fortran 95 may be available later, depending on the demand (e-mail us if you would like this compiler supported).

Back to Top

Do I need a Visual Basic compiler to use f90VB?

Absolutely no. There are many things you can do with f90VB that do not involve Visual Basic. You can use f90VB to create Fortran automation controllers, or to interact with other COM/ActiveX objects exposed by Windows and third-party applications. If you have other compilers that can create automation objects or that support COM/ActiveX data types, you can use f90VB to interface your Fortran programs/DLLs with programs/DLLs created with these compilers. For example, you can use f90VB to easily create Fortran DLLs that can be called from Delphi. Because the COM/ActiveX data types are binary compatibles, you can exchange strings, variants and arrays between your Fortran DLLs the Delphi program without having to worry about the internal representations of these structures in both languages/compilers. The BStrings library, for example, also offers an excellent opportunity for programmers mixing C/C++ and Fortran, because both languages can handle BStrings now, you can exchange string data using this format, rather than having to worry about null terminators or blanks padding.

Back to Top


What are the intended users of f90VB?

f90VB has two main groups of intended users.

  • The average Fortran programmer that needs to be able to interface their programs with automation objects. For example, a Fortran programmer that would like to create and fill-out an Excel spreadsheet with the results of some computations made by his/her Fortran program. Perhaps creating some graphics to illustrate the results.
  • The mixed-language programmer. Many programmers like to use the right tool for the right task. Fortran is excellent for numerical analysis and mathematical work. Visual Basic, Delphi and even C/C++ have excellent tools for creating nice GUI. Why wouldn't we want to use Visual Basic to create the GUI of an application while relegating the math computations to Fortran?. f90VB is the perfect tool for those programmers looking to take advantage of Fortran enhanced math manipulation, because with it Fortran programs can handle standardized forms of strings (BStrings), arrays (Safe Arrays) and Variants, which are also supported by most other languages under Windows. This means mixed-language programmer don't have to worry about things like C storing arrays in row major, while Fortran does it in column major. Both compiler can now speak the common language of Safe Arrays.

Back to Top


Do I need to buy a license to use f90VB?

Absolutely yes. You don't want us out of business do you?. Lahey Computer Systems and their affiliate stores are the main distributors of f90VB.

Back to Top


I have Compaq Visual Fortran, why would I want to use f90VB?

Compaq Visual Fortran gave a leap jump when it introduced support to create COM servers from Fortran. Their Module Wizard is also an excellent tool to import COM/ActiveX type libraries and make them useable from Fortran. However, other than the APIs provided directly by the Windows operating system, CVF does not offer any additional support to handle COM/ActiveX native data types. These APIs provide very basic functionality to handle BStrings, Safe Arrays and Variants, but they just simply are not enough. Worst yet, they were written with the C programmer, rather than the Fortran programmer, in mind. For a Fortran programmer this means many ours of debugging, reading and deciphering C/C++ documentation and even hitting insurmountable walls here and there. In most cases, unless you are also proficient in C/C++ this would take you to nowhere. As a simple example, there is no easy way to convert a Fortran string into a BString using the Window's APIs functions. Or what about manipulating Safe Arrays in a efficient way?

f90VB is an excellent complementary tool for those CVF users taking advantage of the compiler's support for COM/ActiveX. With CVF/f90VB you can, for example, easily build COM servers with methods and properties that accept Variants, Safe Arrays and BStrings. Better yet, your Fortran COM servers can handle these data types easily and efficiently.

Back to Top


Can I use f90VB to create Automation Controllers in Fortran?

Yes!. Not only that, they are very easy to build. The Automation library included in f90VB lets your Fortran programs instantiate and control any automation-enabled application or object. With our exclusive Event Handling mechanism, your Fortran applications can even respond to events fired by the automation object. Take a look at our examples, with f90VB handling automation events in Fortran is even easier than doing it from C/C++!

Back to Top


Can I use f90VB to create GUI for my Fortran programs?

f90VB by itself does no include any facilities to create GUI, however, because it make interfacing with other languages (like Visual Basic and Delphi) so easy, you can use the excellent tools provided by these languages to create GUI for your Fortran applications.

Back to Top


Can I use f90VB to work with ActiveX controls?

The answer to this question is a little tricky. All ActiveX controls are automation-enabled, so you can access them using f90VB. However, ActiveX controls must be hosted by a control container (for example a form). f90VB by itself does not provide any type of control containers. What this means is that you cannot instantiate most ActiveX controls directly from your Fortran application. However, you can create a Visual Basic form with the controls, compile it into a DLL ActiveX object, and then use the ActiveX object from Fortran using the automation library included in f90VB.

Back to Top


What is TLView for?

The interfaces of COM/ActiveX and Automation objects are stored in binary format in a type library. TLView is a professional-quality type library viewer. If you have used Visual Basic before, you may be familiar with its Object Browser utility. TLView is does the same work. It offer a convenient way to explore COM/ActiveX objects, to see their interfaces, the properties and methods they expose, as well as the type and order of their arguments. TLView is a utility that we have included to make your life easier when working with Automation objects, because you don't need to keep going back and forth to the object documentation to figure out how to call a method or use a property.

Back to Top


I already know how to create Fortran DLLs that can be called from Visual Basic, why would I want to use f90VB?

If you do, then you are also aware of the problems involved in passing arguments other than integers and reals, between your Fortran DLLs and your Visual Basic programs. With f90VB you can easily pass Visual Basic strings, arrays and variants between Fortran and Visual Basic. Not only that, f90VB gives you the right tools to manipulate these data types inside your Fortran subroutines.

And what about calling Visual Basic DLLs from your Fortran applications? with f90VB's Automation library this can be easily done.

Back to Top


Can I use f90VB with Fortran 77?

No. f90VB makes use of many features found in Fortran 90 that are not part of the standard for Fortran 77, this is the reason why f90VB is available only for Fortran compilers that support, at least, the Fortran 90 specification.

Back to Top


What are COM/ActiveX/Automation?

COM (Component Object Model) has its roots in OLE (Object Linking and Embedding) and Windows 3.0. In its initial stages, OLE was nothing more than a fancy form of Dynamic Data Exchange (DDE), a protocol that allowed client applications to store data from a server application, together with enough information about the server to start the server when requested by the user (usually by double-clicking an image representing the server data). Since then, OLE evolved into a much more complex protocol called OLE Automation, which not only provided a means to exchange data between applications, but also allowed a client application to take advantage of the functionality of a server application through a programmatic interface. Along this evolution COM was born as the standard binary protocol and the set of APIs (Application Programming Interfaces) that make OLE Automation possible. At some point during this process, the term ActiveX also appeared. There has been a lot of confusion regarding the meaning of ActiveX. Some say that ActiveX is nothing more than a marketing strategy from Microsoft; that over time OLE became associated with adjectives like slow and bloated and the market-savvy company needed a new term for the APIs on which its new operating systems, applications and Internet technologies relied. As it currently stands, however, ActiveX is a blanket term used to describe the COM-based technologies that include OLE-Automation, controls, documents, containers, scripting and almost everything else short of the family pet. If you find this confusing, you are not alone, so we'll take a more pragmatic view of the terminology, describing COM and OLE Automation as the main technologies, and throwing in ActiveX here and there, just for the hype of it.

Back to Top


Can I use ADO and ADOX with f90VB?

Absolutely yes!. Both ADO and ADOX are automation-enabled, so you can use them through the Automation module included in f90VB. We'll be soon publishing some simple examples of how to do this in the f90VB Examples page.

Back to Top


Where can I get more information about COM/ActiveX technologies?

The best place to start is Microsoft's MSDN web site. There are also numerous books on COM/ActiveX that cater different levels of users. Consult your favorite bookstore for this.

Back to Top


What does Canaima mean?

OK, we have gotten this question asked so many times, that we have decided to create a simple page explaining where our name comes from. Click here to open this page.

Back to Top


What's a Type Library?

The Component Object Model (COM) and ActiveX technologies use type libraries to provide COM-capable applications with the necessary information to use these objects. So a type library is sort of a blue-print of the functionality of an object. Note the type library does not contain the code executed by an object, it just contains a complete description of the interfaces an application can use to access the functionality exposed by the object. A type library can be an independent file (usually with the extension .TLB), but most frequently it is included as a resource in the object's Dynamic Link Library (DLL) or Executable (.EXE) file. Some type libraries are registered in your system's registry, but others must be loaded or extracted from the DLL or executable containing the COM/ActiveX server.

Back to Top


 
Copyright © 1998-2000 Canaima Software
For questions regarding this site, send an e-mail to
webmaster@canaimasoft.com