calling C++ from R
calling C++ from R
我正在使用Visual Studio创建我的C++DLL。一个示例C++函数是
void _stdcall MyFunc(char ** strInput)
{
MessageBox(NULL,"Hi from C++", L"C++ program", NULL);
}
然后,我可以通过执行以下从R调用此函数
dyn.load("PathmyDll.dll")
.C("MyFunc","Hello")
当从R 64位调用时,上面的代码运行良好。然而,当我将DLL编译为32位DLL并从R 32位调用它时,它在短暂显示消息框后崩溃。我知道我的DLL正在工作,是一个有效的32位DLL,因为我可以从其他程序调用它的函数,没有问题。你知道为什么当R 64位可以毫无问题地处理同一个调用时,R 32位会崩溃吗?
从注释重新存储:
将_stdcall
替换为__cdecl
–x64有一个单一的、通用的调用约定,但x86没有,而且你显然用错了。
相关文章:
- 如何解决"invalid conversion from 'char' to 'const char*'"
- std::async from std::async in windows xp
- std::is_reference from std::any
- std::time_point from and to std::string
- "No suitable conversion function from 'std::string' to 'const char *' exists"
- std::chrono::time_point from std::string
- Visual accept std::string from std::byte iterator
- C++中链表的错误"Abort signal from abort(3) (sigabrt) "
- dopen():不以 root 身份运行时"failed to map segment from shared object"
- C++ 中的"template <typename From, typename Tag> struct Alias;"是什么?
- from std::vector to adept::avector
- qt get child (Callout) from QChart
- Webassembly from Javascript
- Generate boost::uuids::uuid from boost::compute::detail::sha
- 什么是"Reading unbounded stream from standard input (Memory Management)"的例子
- Calling C++ dll from python
- 为什么我会收到"invalid conversion from 'Queue*/Stack*' to 'int'"错误消息?
- std::chrono 在从 main 或 from 类方法使用时给出不同的值
- Calling Python Script from Visual Studio C++ Solution
- Access C++ Enum from Swift