.Net Framework

Hi,

I have an application which I did not originally create.  I develop it using Visual Studio 2003 - Visual C++.net.  When I click on the configuration manager for my solution I can see that this platform, for said application is "Win32".  I didnt think this was the case since my work (code) is developed compiled and run correctly using visual studio.net.

Then i created a completely new project, visual c++ and chose the option "Windows Forms Application".  Once this had set itself up I checked the configuration manager and it also told me "Win 32".  Then I added a new project but this time in C# called "Windows Application" and upon checking the configuration manager it was listed as ".net".

 

Perhaps I just dont understand the whole .net framework, but when is a claimed .net application in C++ saying it is win32 and not .net

Thanks

 

Will



Answer this question

.Net Framework

  • cindyding0412

    It may look a bit weird at first but .NET is seen more like an extension to C++, not as a different configuration. Even if you use .NET extensions in C++ you are also free to include <windows.h> and call Windows API functions just like in a Win32 application. The difference between an classic Win32 c++ project and a C++ project that supports .NET is made by the "Use managed extensions" options on project Configuration Properties\General property page.
  • itsacrisis

    If that option was set off then yes, that application is not a .NET application but a normal Win32/Native code application. As for turning it to on and compiling that should work but that is a thing that definitly needs testing. Also it depends on what you are trying to acheive. For example if that application is just an exe then it can work fine. If you your code is a library and you want to access classes from that library from withing another .NET languages like C# or VB.NET then you'll be in trouble. If you can provide some details about why you need to switch that code to .NET maybe I can detail it a bit.
  • Keirsy

    "Use Managed Extensions" ...

    I can't find this property option, is it available in VCExpress Edition


  • Ltrs Zariyuco

    Technically you could enable "Use managed extension" and you'll get a dll that is .NET and may be that will even work but...

    If you do this you will probably get at least a linker warning, LNK4243. If you search for it in MSDN you'll find some explanations about it and some ways of solving it. I never did this and it looks a bit complicated.

    Another thing is that the dll you'll get I wouldn't call it a .NET dll. It's true that its compiled to MSIL instead of native code, it has metadata, it uses the .NET runtime but it doesn't really make any use of the .NET Framework classes. It's more like you compile it for another CPU and run it under an emulator. Also if you want to access its functionality from .NET languages like C# or VB.NET it will be seen like a ActiveX component. What I am trying to say is that there is not much use of compiling it to .NET because managed or unmanaged you can access that ActiveX control from .NET. Now if the customer really wants this I don't know what to say. Maybe he doesn't know that it can use a normal ActiveX from managed code or maybe what he really wants is a .NET Class library that performs the same function as the ActiveX control (in this case the only options is to rewrite it)...


  • LLIAMAH

    In 2005 versions it's called Common Language Runtime Support.
  • Salma Noorunnisa

    I am trying to turn an activeX control (ocx) into a dll, that is .Net, Dont ask why, its a customer-request!  Is there a way to make that change

    Thanks for your help on this, nice to hear someone talk about .Net and I understand what they mean

     

    Will


  • MikeC#

    The first time i did that only "basic runtime checks" had that option....the other one i just set to "no".

    I tried it, it failed with the same reason and now that i check it, it uses "default" and not inherit and the inherit option is no longer available....

    any ideas

    Will


  • SpaceGuy

    Could be... for me it works ok. Anyway you many need to check the options that are set for each file because some files may have different compile settings than the project.

    Tip: if you have a lof of files Select them all and choose Properties from the context menu. This way you can set the properties for all at once.


  • sdoyle

    Yeah, the customer doesnt really understand but, what they want they get you know.  I think your correct on the re-write, its probably easier in the long run, its a huge program though so we will have to see, thanks for your help though mike, I have a better grasp of how .net fits into everything now, cheers

     

    Will


  • Rainier

    If I turn this on, (it was set off) then my code will compile no problem and my application will be a .net application   Therefore meaning that the application as it is, is not .net

    Is that all correct

    thanks for help on this

     

    Will


  • Darin V

    Ok,

    I got it to compile.....Nearly all of it compiled, which was a lot of code so thats code

    I only got two errors and one warning, just wondering if they're common problems

    This one is a fatal error C1001

    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlconv.h(1000): error C2084: function 'LPDEVMODEA AtlDevModeW2A(LPDEVMODEA,const DEVMODEW *)' already has a body

    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlconv.h(548) : see previous definition of 'AtlDevModeW2A'

    this one is wierd as i dont have an f: drive! do u know where you change that Thanks

    c:\will\will\editsomething.cpp(2198): fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'f:\vs70builds\3077\vc\Compiler\Utc\src\P2\main.c', line 148)


  • kast

    hi,

    further to my above posts, i have decided to try and use .net in my EXE, as i mentioned before at the moment it is currently a win32 project. So i turned on the "use managed extensions" options and tried to build the application. It failed with a d2016 error saying that the following were incompatible. /clr and /RCT1. Now i took this project over from someone else and was my first work with VC++, so first what do these options do and what will happen if i remove them And also how do u do that, i cant find the way at all!!

    Thanks

    Will


  • Jonas Rosqvist

    sorry just realised why it would now say defaults...but it still didnt worl...does it have something to do with this bug...

    http://weblogs.asp.net/jdennany/archive/2003/07/27/10582.aspx

    thanks

    Will


  • shravanKA

    Go to Project Properties, C/C++, Code generation Options. There you have Smaller Type Check and Basic Runtime Checks. Set them both to "Inherit from project defaults". Compiling with /clr does not support this runtime checks.
  • .Net Framework