[MGGEN.COM : Magic developers resources - GET.DLL free libray]  
[ Magic DLL X XRef * Contact * History * Links * Repository < FAQ > French ]
[ Frequently Asked Questions ]

[^] FAQ

What is Magic ?
Magic is a RAD development tool. Look a the MSE (Magic Software Enterprises) web site for more informations and to download a limited edition.

I didn't success in downloading the file !
Try later, the server may have problems or bandwidth limits, or I was uploading the file.

The file doesn't decompress !
Try downloading later the file. Usually, it's a broken download.

Installation tips.
  • The installation must be done in your Magic development folder. So I can put there the DLLs, modify the Magic.ini and put the demo files in the GET\ subfolder.
  • Use the shortcut created in the GET.DLL for Magic program group. It set the Magic language as english (in order to the action to be correctly imported), the mls language to English (Strings are in French).
  • Look at this technote if importation doesn't work.
How does subclassing work ?
This functions let make one call (usually at startup) to change the behavior of Magic controls. For instance, you can change the caret color or size, the look of the Magic sliders, or transform buttons to clocks, hyperlinks, animation, ... based on the button title. Basically, it's a small program that interface between users actions (mouse, key, ...) and the Magic control, and can draw it.

Why use those Magic DLLs ?
  • You need them, there is no Magic way to do it.
  • Your application will be more Windows, will gain in functionalities, in speed, in stability, in portability...
  • It's a freeware !
Why do not use those Magic DLLs ?
  • You don't need them.
  • You may not want to have in your application third party products, so upgrading will be smoother. But you may NEED it ! You can limit your use to functions that can be easily removed (a sample is the dynamic images buttons).
  • You add something, so it's less stable. But some functions let you have a more stable application, especially when replacing DOS call (print_file, dir functions, ...).
  • It's free !
  • It's only for Windows. However, the Magic runtime runs only under Windows, although development now also runs under Linux.
There is a bug !
Yes, there are certainly bugs, especially with new functionalities, although it's rather stable. To help me correcting the problem rapidly, please try to isolate the problem, and if possible provide a Magic exported task that shows the problem. Precise you Window version, your Magic version (ie Win95b, Magic V8.3 SP2, IE 4 instead of Win95 and Magic 8). You can also look at the know bugs lists.

Magic crashes !
It may be a bug. If the DLL is called directly (not using one of the provided Magic wrapper), verify spelling, verify parameters, and verify you have the last DLL version.

This new version doesn't work anymore !
Look at the history, if the function has been modified, then I certainly have introduced a new bug :-(

Did this DLL change ?
Look at the history, it may have been no modification. But as it's a package of several Magic DLLs, the version number is modified for all DLLs, even if they don't have changed. The LCC-Win32 compiler may also have been upgraded.

Where may I place a Magic DLL ?
You should place a Magic DLL in the Magic folder (the folder where is mggenw.exe or mgrntw.exe), it is the first place where Windows will look (I quote from MSDN) :
The system searches for the DLLs in the following locations, in sequence:
  1. The directory that contains the module for the current process.
  2. The current directory.
  3. The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.
  4. The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.
  5. The directories listed in the PATH environment variable.

What GET.DLL version am I using ?
To verify what GET.DLL version is loaded, you can launch the 'get.about' UDP that will give you version information, last date of modification, and complete path to the DLL.

Does this Magic DLLs run on NT ?
GET.DLL and NETGET.DLL are Win32 DLLs, they should work under Windows 95 (all versions), Windows 98, Windows ME, Windows NT 4, Windows 2000, and upper versions if Microsoft keeps them backward compatible. Actually, some functions test the Windows version to ensure that it works on all current systems (for instance, the beep function). NTGET.DLL works only on Windows NT/2000, and MFGET.DLL only on Citrix Windows systems.

What is the difference between UDF and UDP
Magic distinguish between the procedures (that return nothing, and where each parameter can be modified), and the functions (that return a value, but whose parameters are not modified). To call the former, you use the CALL UDP operation (UDP is an option of the CALL operation, like Task, Prog and Exp). The latter ones are used with the UDF() function, in the expression repository.

Why do you distribute LCC-Win32 and Borland C/C++ compiled versions ?
So you have the choice ! I use LCC-Win32, and only compiled with Borland C/C++ in case I'll need C++.

It doesn't work on this other PC.
A few functions need recent system DLLs (such as comctl32.dll) to fully work. Try to install IE3 (at least). Make sure you have the good version on this PC (try 'get.about', this procedure shows an about box that shows the version).

I have an "Failed to load driver" message
Magic did not find the DLL. The best place to put Magic DLLs is in your Magic folder (the same place as you mmgenw.exe or mgrntw.exe). If the problem persists, it may be a dependent DLL that is not present (look at Dependency Walker to determine if all dependencies are OK). For NETGET.DLL, you need Internet Explorer ; NTGET.DLL will only run on Windows NT only and MFGET.DLL use Citrix Winframe extensions.

How can I use my national characters ?
If you use a 8 bits character set, then you can. Magic internally use the ASCII character set (like DOS), but Windows use ANSI. So you need to convert between the 2 characters set. You can use the get.ansi_to_oem and get.load_convert functions, initialize their behavior by the get.load_convert function, that lets you use Magic translation files or Windows internal functions. Magic 9 eDeveloper use ANSI character set.

I don't understand your documentation !
I'm not a native English speaker, so what you read may have no sense. Look at the demo application, it aims to help you.

Can I have the source code ?
No, you can't. It's a freeware but it's not open-source. This DLLs are written in C, using LCC-Win32 or Borland C++ as the compiler. I may sell it however.

Can I use GET.DLL from other development Tools ?
Functions are exported, so you should be able to use them. However some functions supports only Magic (I'm testing window classes for instance). For Magic specific DLLs that do not export functions, you can use MGPROC.GetMagicProcAddress, that reproduces GetProcAddress behavior for Magic DLLs. Types used in Magic DLL are : A (string, char *), L (pointer to long, long *) and D (pointer to double, double *).

Can I print Magic Cross References ?
Yes !

Why don't you support gif animation ?
There are some legal problems, and anyway I don't know how to support them. However, I support .ani and .avi animations, so you can convert your gif animations to .avi : they take less CPU usually as they are designed for speed, not for saving bandwidth.

What are the memory requirements ?
DllView shows that memory requirements are about 450KB. The file size is under 300KB.

Hi ! I have a suggestion.
Contact me. Numerous functions and enhancements are users suggestions : I mark them by this bitmap : Suggestion !.

Hi ! I have a contribution.
I you want to share with other Magicians a piece of code, some tools or other magicwares, I have a place for you.

I have a question.
You can Contact me, Dominique Stéphan.

How can I make a Magic DLL ?
  • You first have to do a Windows DLL, it's mean you need either a C compiler, a C/C++ compiler or Delphi (you can't do real DLLs from Visual Basic). You'll also need to know the language, and to know how to develop for Windows using this language.
  • A Magic DLL has some specificities : look at the samples in the Magic userproc subfolder ; you can also look this small sample using LCC-Win32, as well as this technotes that explains how to compile for LCC-Win32 and Visual C++ 5. Hotfudge has a Delphi sample, with the adapted Magic header.
  • Since Magic 8.20, you can also call standard Windows DLLs with the new call udp operation behavior.
I'm still waiting for your answer !
Please recontact me, I may have lost or forgotten your mail.

Package Name : GET.DLL
The official name is GET.DLL. GET because the first functions I wrote always began by get, and that I like short names ; and DLL because it's a Windows Library. The package has grown up, and now there are several Magic DLLs : GET.DLL, NETGET.DLL (network), MFGET.DLL (metaframe), NTGET.DLL (Windows NT/2000), MAILGET.DLL (Mapi and Mailto), PHONEGET.DLL (to phone using sound card).

[BREIZH] What does kenavo mean ?
Au revoir.

But what does au revoir mean ???


Marianne de Briat Gaston Lagaffe Powered by GET.DLL, a Magic ExTension DLL