Tag: mingw64

Excel 64位C插件编译问题

这里有一些C代码,我想变成Excel 2010 64位的Excel .XLL插件。 问题是,如果Excel 2010可以运行32位插件,代码HAS是64位,因为我需要从这个插件启动一个64位JVM。 当我用Visual Studio 2012进行编译时,它可以工作。 当我用mingw64编译这个相同的代码时,它会编译,但Excel崩溃(XLCALL32是Excel 2010 SDK中的64位版本)。 c:\mingw\mingw64_rubenvb\bin\x86_64-w64-mingw32-gcc.exe -m64 -shared -o test.xll test.c -L . -lXLCALL32 经过漫长而令人沮丧的努力,我发现问题出在Excel4的调用上。 如果我用Excel12 (来自前面提到的SDK附带的XLCALL.CPP文件)replace掉那个调用,显然使用XLOPER12和XCHAR,那么这一切都可行! 有没有人有任何洞察,为什么这是? 代码如下: #include <stdlib.h> #include <stdio.h> #include <windows.h> #include "xlcall.h" #define XL_MAX_STRING_LENGTH 255 #define JAVA_MAX_NUM_JVM_ARGS 20 char *xl_new_string(char *text) { if (!text) return NULL; int len = strlen(text); if (len == […]