From: Olivier D. <od...@gm...> - 2006-10-23 07:03:19
|
I agree with Wim: In .NET, functions don't exist and a method can't be defined outside of a class (or a structure). C++ allows this kind of construction. Thus your functions "which are not in a class" are regular C++ functions and they can't, by definition, be expressed by any .NET language. Indeed, these functions are compiled to native code and mixed with .NET code in the resulting assembly. It can be a solution to wrap these functions into a .NET class, but only if you don't rely on some native code behavior. If you do so, pay attention to the way you manage memory (native unmanaged pointers and .NET references (managed by the GC) are not quite the same), be careful with strings too. I'm not a managed C++ expert, but this may prove not to be a trivial task. PS: I don't know if you're using the .NET 1 or .NET 2 flavor of Managed C++, but be aware of the fact that even if the latter recognizes the older syntax, there are differences. And so, you may pay attention to this if grabbing samples on the net. Best regards, Olivier DALET On 10/22/06, Wim Coenen <wc...@gm...> wrote: > > Your assembly does not contain metadata for those functions > because it is a "mixed assembly" with both dotnet IL instructions > and native instructions, something which only occurs when compiling > "c++ with managed extensions" as far as I can tell. The native part has > no dotnet metadata, and is thus invisible to other dotnet assemblies, > like the reflector or ndoc application. > > I would try to move or wrap one of those global function in a static > method > of a __gc class called "GlobalFuncs", and document it there. Since the > "GlobalFuncs" class is managed, it should be visible to ndoc. > > 2006/10/19, Wilson Robin T <rob...@br...>: > > Hi, > > > > Thanks for your response - sorry for the delay in replying, I've been > out of > > the office for quite a while. > > > > I've had a look with the .Net Reflector, and I can't find my standalone > > functions in there at all! I'm not sure how my program is working > then...I > > am using Visual C++ .Net and have some old-style C++ global functions > which > > don't seem to be appearing in the reflector, but the code is accessing > them > > fine! How weird! > > > > Dose anyone know if there's any way I can get them to appear in the > > reflector? Or, if there's any way that I can get them to be documented > using > > NDoc? > > > > Cheers, > > > > Robin > > > > -----Original Message----- > > From: Wim Coenen [mailto:wc...@gm...] > > Sent: 09 October 2006 16:26 > > To: Wilson Robin T > > Cc: ndo...@li... > > Subject: Re: [Ndoc-users] Documenting functions which are *not* in a > class > > > > 2006/10/6, Wilson Robin T > > <rob...@br...>: > > > I have lots of functions which are just in separate .cpp files with no > > > membership of a class (or even a namespace - though I wouldn't mind > > > making them members of a namespace if that would help). Is there any > > > way to document these functions using NDoc? If I look at the XML that > > > Visual Studio spits out then it does list those functions which aren't > > > in a class - NDoc just doesn't seem to do anything with it. > > > > > > > I don't use visual studio or write code in c++, so I obviously cannot > > reproduce this problem. However, I do know that dotNET assemblies never > > contain standalone functions. Dotnet compilers for languages which do > have > > this feature (e.g. delphi) have to put such functions in a special > class. > > > > Now if NDOC encounters a member element which for some reason does not > match > > the CLR metadata of anything in the compiled assembly, then it will > ignore > > the element. To find out if this is your problem, take a look at your > > assembly (e.g. with Lutz Roeder's .NET Reflector), find out in which > > namespace+class your function ended up, and then compare that with the > XML > > element. > > > > That should shed some more light on the cause of your problem. > > > > HTH, > > Wim Coenen. > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Ndoc-users mailing list > Ndo...@li... > https://lists.sourceforge.net/lists/listinfo/ndoc-users > -- Olivier DALET --------------------------------- http://odalet.wordpress.com http://aspadvice.com/blogs/oliviers_net_blog |