Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解决EXCEL和CYGWIN-DLL´中堆管理的差异;s_Excel_Vba_Dll_Cygwin_Ipopt - Fatal编程技术网

解决EXCEL和CYGWIN-DLL´中堆管理的差异;s

解决EXCEL和CYGWIN-DLL´中堆管理的差异;s,excel,vba,dll,cygwin,ipopt,Excel,Vba,Dll,Cygwin,Ipopt,我试图使用一个用C编写的示例IPOPT问题,并将其编译为一个DLL,该DLL在EXCEL VBA代码中使用。 我正在使用Cygwin在Windows中编译DLL。(作为stand allone EXE,它按预期正常工作)。 从EXCEL,我可以访问DLL没有问题,可以交换数据。 但是,只要DLL开始运行IPOPT函数,EXCEL就会关闭并出现错误。 从我的调试活动来看,这是内存分配的结果。 如果DLL中的C代码尝试使用malloc分配内存,EXCEL将出错。 如果DLL中的C代码通过函数Loca

我试图使用一个用C编写的示例IPOPT问题,并将其编译为一个DLL,该DLL在EXCEL VBA代码中使用。 我正在使用Cygwin在Windows中编译DLL。(作为stand allone EXE,它按预期正常工作)。 从EXCEL,我可以访问DLL没有问题,可以交换数据。 但是,只要DLL开始运行IPOPT函数,EXCEL就会关闭并出现错误。 从我的调试活动来看,这是内存分配的结果。 如果DLL中的C代码尝试使用malloc分配内存,EXCEL将出错。 如果DLL中的C代码通过函数LocalAlloc(来自windows.h)分配内存,则一切正常

现在,我显然需要将整个IPOPT代码中的malloc调用(可能还有BLAS、LAPACK和solvers?)从malloc更改为 LocalAlloc。 有没有一种无痛的方法?是否有机会使用包装器或任何方法使EXCEL接受Cygwin创建的C-DLL的堆管理? 有配置选项吗

谢谢你的帮助