.net2003でMFCダイアログアプリを作ってます。
.NET Framework クラス ライブラリを使いたいのですが可能ですか?
例えばApplicationクラスのget_UserAppDataPathを使うとかできますか?
たしか、アンマネージドからはマネージドクラスは呼べなかったような。
SHGetSpecialFolderPath関数でCSIDL_LOCAL_APPDATAを指定するととれるかも。
http://www.kaede-software.com/2005/01/application_dat.html
レスありがとうございます。
.netアプリがマネージドでMFCがアンマネージドってことですね。
呼べないというのはなぜなんでしょうか?同じC++なのに?
CからActiveXとかが無理なのと同じ理屈なんでしょうか?
C++内で別言語にわかれてるのでしょうか?
> 同じC++なのに
同じではありません。
Managed C++はMicrosoftの独自拡張です。
VS2005からはC++/CLIっていう更に別物になっちまいます。
呼べない理由ですが、
そもそも.NETのバイナリと普通のWin32のバイナリは全くの別物になっています。
.NETはILという中間言語に落とされたバイナリが生成され、
JITコンパイラによって実行時に動的にコードが翻訳されます。
従ってUnmanagedからManagedを呼ぶには、まずこの問題をクリアしなければなりません
し、
他にもGCの問題や、Managedなライブラリ群の初期化なども必要となってくるでしょう。
それらすべてをクリアできさえすればManagedなコードを呼び出すことは
できるのかもしれません。
参考です。
msdnの「C++ マネージ拡張プログラミング」
http://msdn.microsoft.com/library/ja/default.asp?frame=true
リンク無理だったみたいです。
msdnのlibrary「C++ マネージ拡張プログラミング」
を探してみてください。
> アンマネージドからはマネージドクラスは呼べなかったような。
ただし逆はできますから、マネージドアプリから MFC を使うことは可能です。
> .net2003でMFCダイアログアプリを作ってます。
> .NET Framework クラス ライブラリを使いたいのですが可能ですか?
単純に/clrスイッチつければアンマネージとマネージの混在が可能です。
まぁ,とりあえずは
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/vcmex/html/vcconManagedTypesMFC.
htm
だけが問題ですかね。
みなさんありがとうございました。
教えてもらったとこで勉強してみます。