VC++ .NET2003で、.NETクラスライブラリを作成しています。
マネージドクラス内でアンマネージドクラス(__nogc)をnewすると、なぜかリンクエラーになります。operator newが見つからないと出ます。
Formアプリの場合は、問題なくnewできます。
クラスライブラリの場合、なにかオプション設定が必要なのでしょうか?
具体的にどのように宣言して、どうnewしているのか書かれた方が良いです。
一応
C++: マネージ拡張リファレンス __nogc
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmex/html/vclrf__nogc.asp
明示的に new のまえに __nogc を付けてみるとか。
明示的__nogcを付けてみましたが、リンカエラーは出たままです。
Formアプリで動いていたものを、クラスライブラリに移しただけなんですが・・・
namespace Test
{
__nogc class NoGCClass
{
public:
void Test() {}
};
public __gc class GCClass
{
public:
void Test()
{
NoGCClass* p = __nogc new NoGCClass();
p->Test();
}
};
}
ひょっとしたら、これが関係するのかも。
混合モードってなんだ?
クラスライブラリの場合だけ、ナゼこんな・・・
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmex/html/vclrf__nogc.asp
リンク先が間違ってました。
http://www.microsoft.com/japan/msdn/library/ja/vcmex/html/vcconclasslibrarytemplate.asp
クラスライブラリはCRTにリンクされない、とあるので、
関係あるかも・・・
ツイート | ![]() |