Rcppを使ってC++ベースのメッセージボックスを作っています。
以下のように文字列を直接MessageBox()の引数とする方法では
問題なくビルドできメッセージボックスが起動するのですが・・・
Rcpp
1#include <windows.h> 2#include <Rcpp.h> 3using namespace Rcpp; 4 5// [[Rcpp::export]] 6int msg() { 7 int a; 8 a = MessageBox(NULL, "abc", "tittle", MB_OK); 9 return a; 10}
以下のコードのように文字列を引数としたところ、
a = MessageBox(NULL, *comment, *tittle, MB_OK);の部分で
**「no matching function for call to 'MessageBoxA'」**というエラーに引っかかってしまいました。
Rcpp
1#include <windows.h> 2#include <Rcpp.h> 3using namespace Rcpp; 4 5// [[Rcpp::export]] 6int msg(String x,String y) { 7 int a; 8 String *comment = &x; 9 String *tittle = &y; 10 11 a = MessageBox(NULL, *comment, *tittle, MB_OK); 12 return a; 13}
String *comment = &x;String *tittle = &y;といったコードで文字列を参照渡ししており
LPCSTR型に相当する処理は行っているのですが上手くいきません。
(処理を行っているつもりで何かが違うのだろうと試行錯誤していますが、行き詰まっています。)
RcppというR言語でC++を組み込むというマイナーな質問で申し訳ないのですが、
このエラーに関して何かご存知の方や解決策に心当たりのある方がいらっしゃいましたら
C++に詳しい方もRに詳しい方もよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/18 16:44