Jump to content

new module for FS2k2


Recommended Posts

where can I find any info about developing own module (.ddl) for Flight Simulator?

Assuming you mean a .dll for the Modules folder, there is no published information. Why would you want to do such a thing? It is a lot of work and really unnecessary -- what do you hope to gain?

GAUges are DLLs. the only difference is that they are loaded by the PANELS system instead of loaded initially by the FS main code. Learn to write Gauges first, then you are half-way there. But ask yourself what you want to be doing running inside FS's process? What is this needed for? Is the FSUIPC interface, especially extended across Networks via WideFS, not sufficient for your needs?

Regards,

Pete

Link to comment
Share on other sites

Guest Ronald Vermeij

Hello Damian

You could look into the Microsoft documentation of Visual Studio..

Their must be some very very minimal docs about it.

One FS_MODULE_FUNCTION_CALL is an INITIALIZE function

One FS_MODULE_FUNCTION_CALL is an EXIT function

as far as I can remember..

I have downloaded some sourcecode (somewhere on my harddisk) that is a very very basic example to this'. If you what to know more, send me an email on rvermeij@wirehub.nl.

And yes I understand you point of view...

You want to create something from scratch... I am looking for the same stuff too. .. A kind of 100% pure OPEN SOURCE FS-MODULE framework, that you can modify yourselves and that enables you to write your own stuff. Like in de LINUX world :-)

Greetings

Ronald

The Netherlands

Link to comment
Share on other sites

  • 2 weeks later...

Well I was just going to ask the same question !

Peter, can you use VB6 DLL as an FS module ? Or is it the same problem as with writing guages, that you have to do this in C++ ?

I have worked out a preliminary version of a LTN072 INS in VB which is going to work through FSUIPC, it would however be great if I could use the same program as a DLL in FS thus allowing people who don't have a network at home (yes they do exist :? ) to use this INS in all their panels.

I know how to write my basic FS gauge, but writing an INS is a little more complicated ! Can you "simply" create an FS gauge, change the extension to DLL and place it in the modules folder ?

Thanks for the help !

Björn

Link to comment
Share on other sites

Bjorn,

Just change the windows style in your INS to WS_EX_TOPMOST, and it will run on top of the FS window (and all others).

I don't think VB6 can be used to make a module dll or gauge. If you look at the gauge SDK, you will see that it is all straight C. I don't think VB lets you make low level calls that gauges/modules need to make.

If a module has the correct exports: "ImportTable" and "Linkage", FS will load it and DllMain will be called with dwreason = DLL_PROCESS_ATTACH.

Then your module has to hook into FS's winproc, add itself to the menu, and do it's stuff when selected. It is very difficult to get a 3rd party window to work correctly as a child of FS2002. The previous developers of squawkbox were unable to get it to work that way. Pete is right. I don't think you want or need to mess with this.

A gauge and module share the same export structure, but the simularity ends there. You can't rename one and expect it to function as the other.

King

Link to comment
Share on other sites

Hi Mr King :wink:

The problem with placing a program on top of FS is off course that FS will run in the background, all sound will disappear, image quality goes down considerably etc... so I'm afraid this is not an option.

Would be interesting if FS dedicated an SDK to this "problem" so us simple people could use the modules option.

Kind regards,

Björn

Link to comment
Share on other sites

Many integrated modules are actually created as gauges written in XML to be embedded within FS. If FSUIPC can be your interface, consider that.

While BASIC can be good for developing a functional overview type prototype, it does lack an easier if at all method of low level API calls provided by FSUIPC and FS itself.

If you want a RAD interface, maybe Borland's C++ builder may fit your needs, but it might not offer you the linkage components you require. You can write direct C in it. How well their libraries are compatible under FS environment I do not know.

These are just thoughts derived from perusing varios forums. I have no experience with FS or C++ builder myself, but I have other apps written in VC++.

Link to comment
Share on other sites

C++ Builder generates pure ANSI C++ code (plus any libraries you use of course) and all Borland libraries are also pure ANSI compliant.

In that it's currently the ONLY commercial C++ environment that is fully ANSI compliant.

The problem lies in the DLL entry code. Borlands code is correct but different from Microsoft code.

On 99% of machines it works, but not on all. Or rather, it works together with programs and other DLLs compiled in Microsoft C++/Visual C++ almost always but there are exceptions which are almost impossible to predict.

This was in fact one cause for the delay of one commercial aircraft package. The gauges were written and compiled using Borland C++ and worked fine on everyone's machines until they entered a largescale beta. Suddenly someone reported that the gauges wouldn't load and crash FS with an error that could be tracked to the fact that a Borland compiler was used.

The entire codebase had to be recompiled in VC++ (and partially rewritten because VC++ has some minor differences as it's not fully ANSI compliant) and retested.

Lesson learned from this: for DLLs that need to run in a program compiled with one brand compiler stick to that brand compiler only.

Another advantage is that getting the DirectX import libraries and headerfiles to work with Borland C++ can be a major pain since Microsoft stopped shipping Borland import libs and headers (Borland uses a slightly different entry point definition into the implib, and needs a small change to some header definitions affecting some of the constants).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.