• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

C# and SimConnect problem

Thank you for advanced reply.

I run Simconnect.dll on dependecywalker, and I detected that msvcr80.dll is missing i put them to system folder, it's ok, but now depwalker says
Code:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

:(
 
Screen after msvcr80.dll putting...

276997cbbdd4.jpg
 
It looks like you have the x64 version of the runtime installed - did you install the 32 bit version? Simconnect needs the 32 bit version as it is a 32 bit application, not 64.

Looks like progress at last! Cheers,

Etienne
 
If I install 32 bit version of .net framework, 64 bit framework will be uninstalled? :( then i can't work with 64bit programs :(

Ziporama, Thank you very much for helping me ;)
 
You need to go into the project settings for your C# project, and change the build target from "Any CPU" to the "x86" option (or 32-bit option, something like that). You have to force VStudio to create a 32-bit only C# app (otherwise it creates one that runs 32 on 32 and 64 on 64, but that won't work when importing a 32-bit native library, which SimConnect.dll ultimately is).
 
Works hahaha :D

Thanks all, thanks beatle for hint, thanks ziporama for advanced replys, and helping so much :)
 
Thank you for advanced reply.

I run Simconnect.dll on dependecywalker, and I detected that msvcr80.dll is missing i put them to system folder, it's ok, but now depwalker says
Code:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

:(

This always seems to happen when certain windows updates take place.
Norton Systemsworks (! I know, but it has it uses ), always "Complains" that msvcr80.dll cannot "be found".
I typically end up copying it to the windows/system32 directory, just to make Norton "Happy", and shut it up.

Geoff_D
 
I can not find an option anywhere in C# Express 2008 that changes the platform target / build target property... Someone help!

the link says to do this, but i can't find that option anywere in the build tab???

http://msdn.microsoft.com/en-us/library/5b4eyb0k.aspx

"To set the Platform target property (C#)
With a project selected in Solution Explorer, on the Project menu, click Properties.

Click the Build tab.

Choose a CPU type from the Platform target list. The options are Any CPU (the default), x86, x64, and Itanium."
 
Last edited:
I can not find an option anywhere in C# Express 2008 that changes the platform target / build target property... Someone help!

the link says to do this, but i can't find that option anywere in the build tab???

http://msdn.microsoft.com/en-us/library/5b4eyb0k.aspx

"To set the Platform target property (C#)
With a project selected in Solution Explorer, on the Project menu, click Properties.

Click the Build tab.

Choose a CPU type from the Platform target list. The options are Any CPU (the default), x86, x64, and Itanium."

Unfortunately I have the professional edition and don't have the express edition loaded. However this page seems to indicate that it is not settable in Express Editions: http://msdn.microsoft.com/en-us/library/zekwfyz4(VS.80).aspx
A Google Search might turn something up.
 
I can not find an option anywhere in C# Express 2008 that changes the platform target / build target property... Someone help!

the link says to do this, but i can't find that option anywere in the build tab???

http://msdn.microsoft.com/en-us/library/5b4eyb0k.aspx

"To set the Platform target property (C#)
With a project selected in Solution Explorer, on the Project menu, click Properties.

Click the Build tab.

Choose a CPU type from the Platform target list. The options are Any CPU (the default), x86, x64, and Itanium."

Menu: Tools/Options then 'Projects and Solutions'/ General
check 'Show Advanced Build Configurations'

This is the same for Visual Basic Express.

Be sure to check 'Show All Settings' as well.
 

Attachments

  • VisualExpressConfigManager.PNG
    VisualExpressConfigManager.PNG
    26.2 KB · Views: 865
Last edited:
Menu: Tools/Options then 'Projects and Solutions'/ General
check 'Show Advanced Build Configurations'

This is the same for Visual Basic Express.

Hmmm seems that MS fibbed about it then :)
 
Hi Jon.

It's there. The VC++ express is different. I only get a "Win32" possibility... which is what I should get on a Win32 system. It is odd that AnyCPU doesn't mean any cpu, but specifying x86 guarantees it will work on a 64-bit system, as well as a 32-bit!

Dick
 
Hi Jon.

It's there. The VC++ express is different. I only get a "Win32" possibility... which is what I should get on a Win32 system. It is odd that AnyCPU doesn't mean any cpu, but specifying x86 guarantees it will work on a 64-bit system, as well as a 32-bit!

Dick

Well that is certainly my finding also. I use x86 and the executables work on all the operating systems.
 
Hi Jon.

It's there. The VC++ express is different. I only get a "Win32" possibility... which is what I should get on a Win32 system. It is odd that AnyCPU doesn't mean any cpu, but specifying x86 guarantees it will work on a 64-bit system, as well as a 32-bit!

Dick

Any CPU does mean Any CPU, the problem is with the managed SimConnect wrapper's use of the native C++ client library that requires setting the build type to x86, as that's the only form the native library supports.

I'm currently working on finishing up a new replacement managed SimConnect library that doesn't use the native C++ client, so won't have this restriction on its use (and hopefully I can get it working under the Compact Framework also).

Tim
 
Hey Etienne,

I actually sent you an invite via PM here a few weeks back, guess I either sent it wrong, or you didn't see it :-> Send your windows live ID email address to beatlesblog at hotmail dot com and I'll send you an invite (still haven't gotten the first alpha release quite ready to go yet, but I'm going to be working on it some this weekend, so maybe soon :-> ) - I need a windows live ID because I'm using the group feature on live.com to run the alpha (once I'm ready for a more public release, I'll make it available here and elsewhere).

Still need to add support for tagged data myself :->, although I'll be doing it in the background mostly - I've set my library up so that for data requests, you can register an instanced object as part of the request, and the libraries receiving code will marshal the data directly into the provided object - if proper INotifyPropertyChanged/INotifyCollectionChanged hooks are implemented in the object(s), or the property setters do all the processing required, you don't even need to handle the OnRecvSimObjectData event at all :->


Tim
 
Back
Top