我对ReactJS很有经验,现在我正在努力学习ReasonML.但是我一直在努力理解的一件事是如何使用React/Reason导入npm包.
我不清楚网站上的说明(https://reasonml.github.io/guide/javascript/interop/).
那么,如果我有一个React/Reason项目并且想要使用npm包,我该怎么办呢?如何使用Reason lang导入它?
为什么不extern "C"应该为需要定义为C函数的函数指定?将文件编译为C源时,对编译器有什么影响?
如果对C编译器没有影响,我们不能通过删除#ifdef __cplusplus检查来在头文件中定义一个函数,如下所示吗?
extern "C" {
int MyFunc();
}
Run Code Online (Sandbox Code Playgroud)
另一个问题的答案说#ifdef需要,但我不明白为什么:
关于#2:将为正在通过C++编译器运行的任何编译单元定义__cplusplus.通常,这意味着.cpp文件和该.cpp文件包含的任何文件.如果不同的编译单元包含它们,则相同的.h(或.hh或.hpp或what-have-you)可以在不同的时间被解释为C或C++.如果您希望.h文件中的原型引用C符号名称,那么它们
extern "C"在被解释为C++时必须具有,并且extern "C"在被解释为C时它们不应该具有- 因此#ifdef __cplusplus检查.
为了在C文件中使用C++代码,我读到了我们可以做的extern "C" { (where the c++ code goes here)},但是当我尝试使用cout打印出来时,我不断收到错误,因为它无法识别库.我想我对extern"C"如何允许你在C中使用C++代码感到困惑.
我需要实现一个Windows虚拟磁盘是在Windows资源管理器在单独的磁盘设备可见,并且传输的所有文件/目录来回传送到远程的WebService - 某事像Dropbox的.我是否必须实现/使用内核驱动程序SDK?或者仅使用shell扩展是否可行?我需要的是拦截该磁盘上的所有文件/目录操作并将它们映射到相应的WebService调用(文件创建/删除/移动/编辑和数据传输).谢谢