我有一个指向动态库的函数指针
#include <GL/gl.h> /* or something */
void (*vertex)(float, float) = &glVertex2f;
在GCCi686-apple-darwin10-gcc-4.2.1上它始终有效,但在Visual Studio 2010上失败,
error 'vertex': address of dllimport 'glVertex2f' is not static
我为C89配置了它;我相信这是唯一可用的C.我的想法是,我想在其他不包含库头的文件中将函数指针调用为extern
。
答案 0 :(得分:1)
#include <GL/gl.h>
void (*vertex)(float, float);
并明确地,
int main(int argc, char **argv) {
vertex = &glVertex2f;
...
}
修正错误。
答案 1 :(得分:0)
Windows DLL不像BSD / Linux共享库那样工作:(
我相信您需要GetProcAddress
功能。
此链接刚刚从Google提取:http://msdn.microsoft.com/en-us/library/ms683212(v=vs.85).aspx