首先:我不知道如何创建这个问题的MVCE。我意识到这是一个大不对这个网站,但我坦率地说,这里有很多专业知识,我不知道有更好的地方来问这个问题。也许答案是,发布这个问题<insert other site here>。
问题:对于这里发生了什么,我如何去探讨这个问题,有什么想法吗?
总之,代码库是>10K行的fortran,它也链接在开源C++库nanort中。所以它是Fortran和C++的组合内部代码,有很多事情要做。
在代码的某个位置,我必须在C++中读取二进制文件并对其进行解析。我遇到的问题是,10%的时候,函数std::filesystem::exists告诉我文件不
我现在正在将一些C代码移植到C++。C代码使用多个定义如下:
#define IPADDRESS "fd9e:21a7:a92c:2323::1"
我遇到的问题是,当我用现在位于C++文件中的定义调用C函数时,我会得到:
warning: ISO C++ forbids converting a string constant to ‘char*’
在这种情况下,我不想修改C函数,因为我对C++还不熟悉,我想知道如何处理这个问题。我想告诉C++将这些定义作为char*而不是string constant来处理是不可能的,所以我想知道在这种情况下将string constant转
我想从Fortran调用一个C++函数。为此,我在Visual 2010中创建了一个FORTRAN项目。之后,我向FORTRAN项目添加了一个Cpp项目。当我想要构建程序时,会发生以下错误:
Error 1: unresolved external symbol print_C referenced in function MAIN_main.obj
Error 2: 1 unresolved externals
下面是Fortran程序和C++函数。
Fortran程序:
program main
use iso_c_binding, only : C_CHAR, C_N
我正在尝试将多维Fortran数组传递给C++程序,在C++ Fortran互操作程序中。我对如何将数组从Fortran传递到C++有基本的了解;您可以将数组的位置从Fortran传递到C++。然后,C++采用平坦的数组,您必须做一些代数计算,才能在给定的多维数组中找到元素。
我成功地在标量数组上测试了这个想法。在C++中计算元素的索引并不难,因为它是从Fortran索引线性映射到偏移量为-1的C++的。Fortran和C++的示例代码如下:
! Fortran main program
program fprogram
integer :: i
real*8 :: array(2)
ar