C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#のDLLをC++で読み込む場合のインスタンス作成方法


(過去ログ 108 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64340 / inTopicNo.1)  C#のDLLをC++で読み込む場合のインスタンス作成方法
  
□投稿者/ howling (103回)-(2012/11/27(Tue) 17:01:59)

分類:[.NET 全般] 

度々お世話になっております。

C#で作成したDLLをC++/CLIから呼ぶ方法なのですが、
COMを使わない場合にどのようにインスタンスを作成すれば良いのか、いまいちわかりません。
COMを使う場合はGACとアセンブリに登録して、tlbファイルを参照していたのでわかりましたが、
DLLのみではヘッダに当たる物がありませんよね。

ちょっと古い情報なのですが、
επιστημηさんがそれらしい方法を書いてくださっていました。
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200509/05090014.txt

ですが、C#側で名前空間を指定しているせいか、インスタンスを作成しようにも、クラスがどうも見当たりません。
どのようにすればよろしいでしょうか。

//cs側

namespace ClassLibrary1
{
public class SVNLinker : ISVNLinker
{
private SvnClient clsSVNClient = new SvnClient();
public SVNLinker(){}

public CheckOut(string strRepositryURL)
{
//ごにょごにょ
}
}
}

//C++側

win32プロジェクトを作って、

#include <tchar.h>

#using <mscorlib.dll>
#include <iostream>
をヘッダ部分に追加し、
ClassLibrary1::SVNLinker* p = gcnew ClassLibrary1::SVNLinker();

//エラー
2>testwindow.cpp(155): error C2653: 'ClassLibrary1' : 識別子がクラス名でも名前空間名でもありません。


と、こんな状況です。

どなたかわかりましたら、よろしくお願いします。
引用返信 編集キー/
■64341 / inTopicNo.2)  Re[1]: C#のDLLをC++で読み込む場合のインスタンス作成方法
□投稿者/ とっちゃん (28回)-(2012/11/27(Tue) 18:17:09)
とっちゃん さんの Web サイト
No64340 (howling さん) に返信

ClassLibrary1.SVNLinker を持つDLLまたは、C#のプロジェクトをC++/CLI のプロジェクトで参照していますか?
プロジェクト(あるいはDLL)を参照するという行為は、C/C++ では、#include "..." や、#pragma comment( lib, "...")
を記述するのとほぼ同義となります。

やり方がわからん!という場合は、まず、「MSDNライブラリ」(VS上で、Ctrl+F1キーを押すと出る)でご自身でお調べください。
それでもやっぱりわからなかったー!という場合は、何を調べたか(キーワードなど)も記述したうえで質問することをお勧めします。


引用返信 編集キー/
■64342 / inTopicNo.3)  Re[2]: C#のDLLをC++で読み込む場合のインスタンス作成方法
□投稿者/ howling (104回)-(2012/11/27(Tue) 18:51:46)
No64341 (とっちゃん さん) に返信

あ…プロジェクトの参照設定ってC++でもできるんですね…。
初歩的な質問ですみませんでした。DLLの読み込みで調べたのが間違いだったのかな…。

ありがとうございました。もう少し色々調べてから質問するように心がけます。申し訳ありませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -