質問編集履歴
4
書式の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C#からC++の関数をクラスライブラリ経由で利用する
|
1
|
+
C#からC++の関数をクラスライブラリ経由で利用するできない
|
test
CHANGED
@@ -55,29 +55,3 @@
|
|
55
55
|
return image;
|
56
56
|
}
|
57
57
|
```
|
58
|
-
|
59
|
-
### 補足情報(FW/ツールのバージョンなど)
|
60
|
-
visual studio express 2017
|
61
|
-
OpenCvSharp 4.5.5
|
62
|
-
opencv 4.5.5
|
63
|
-
|
64
|
-
---------------------
|
65
|
-
追記
|
66
|
-
|
67
|
-
可読性の関係でc++/cliのクラスライブラリを用いてc++の関数をc#から使うように変更しました。
|
68
|
-
その際、c++の中にstringがあるとうまくいかず困っています。
|
69
|
-
(c#とc++で文字列を受け渡しはしておらずc++の関数内でローカルのファイルを読み込む処理を含む関数を想定しています。)
|
70
|
-
|
71
|
-
[リンク](https://qiita.com/miwazawa/items/835225e9e1ea15eabdde)を参考にc#からのbitmapを引数にmatに変換する関数、matからbitmapに変換する関数の作成はできました。
|
72
|
-
次にローカルのファイルをファイルを読み込んでimshowさせるような関数を作成しているのですが、以下のようにstringの変数を使用するところでハンドルされない例外が出てしまいます。
|
73
|
-
|
74
|
-
```c++
|
75
|
-
void OpenCVLibrary::ProcMat::test() {
|
76
|
-
std::string file = "dog.jpg";
|
77
|
-
cv::Mat img = imread(file);
|
78
|
-
cv::imshow("test", img); //ここで'System.Runtime.InteropServices.SEHException: '外部コンポーネントが例外をスローしました。'となります
|
79
|
-
cv::waitKey(0);
|
80
|
-
}
|
81
|
-
```
|
82
|
-
この時の変数を見るとアンマネージドだからマネージドにかけばいいというのはわかるのですがSystem::String^などはimshowの引数にできなかったりとどうしてよいのかわかりません。
|
83
|
-
なにか案などはありますでしょうか??
|
3
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C#からC++の関数をクラスライブラリ
|
1
|
+
C#からC++の関数をクラスライブラリ経由で利用する際、C++でstd::stringを使えない(アンマネージドな変数をつかえない)
|
test
CHANGED
File without changes
|
2
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C#からC++の関数を
|
1
|
+
C#からC++の関数をクラスライブラリを利用して利用する際、C++でstd::stringを使えない(アンマネージドな変数をつかえない)
|
test
CHANGED
File without changes
|
1
クラスライブラリの利用に変更することで画像の受け渡しはできましたが、文字列の扱いで困っています。
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,3 +61,23 @@
|
|
61
61
|
OpenCvSharp 4.5.5
|
62
62
|
opencv 4.5.5
|
63
63
|
|
64
|
+
---------------------
|
65
|
+
追記
|
66
|
+
|
67
|
+
可読性の関係でc++/cliのクラスライブラリを用いてc++の関数をc#から使うように変更しました。
|
68
|
+
その際、c++の中にstringがあるとうまくいかず困っています。
|
69
|
+
(c#とc++で文字列を受け渡しはしておらずc++の関数内でローカルのファイルを読み込む処理を含む関数を想定しています。)
|
70
|
+
|
71
|
+
[リンク](https://qiita.com/miwazawa/items/835225e9e1ea15eabdde)を参考にc#からのbitmapを引数にmatに変換する関数、matからbitmapに変換する関数の作成はできました。
|
72
|
+
次にローカルのファイルをファイルを読み込んでimshowさせるような関数を作成しているのですが、以下のようにstringの変数を使用するところでハンドルされない例外が出てしまいます。
|
73
|
+
|
74
|
+
```c++
|
75
|
+
void OpenCVLibrary::ProcMat::test() {
|
76
|
+
std::string file = "dog.jpg";
|
77
|
+
cv::Mat img = imread(file);
|
78
|
+
cv::imshow("test", img); //ここで'System.Runtime.InteropServices.SEHException: '外部コンポーネントが例外をスローしました。'となります
|
79
|
+
cv::waitKey(0);
|
80
|
+
}
|
81
|
+
```
|
82
|
+
この時の変数を見るとアンマネージドだからマネージドにかけばいいというのはわかるのですがSystem::String^などはimshowの引数にできなかったりとどうしてよいのかわかりません。
|
83
|
+
なにか案などはありますでしょうか??
|