用VC2005编写了一个DLL,只实现了最简单的功能,int add(int a),在定义中把这个参数a加10后返回。在CB6中没办法调用这个DLL,用LoadLibrary("Test.Dll")时返回的是NULL。
同样的DLL代码,如果是在VC6中编译后,在CB中是可以调用的。
下面是完整的DLL代码:
////////////////////
Simple.h
///////////////////
extern "C" _declspec(dllexport) int add(int a);////////////////////
Simple.cpp
///////////////////
#include "Simple.h"int add(int a)
{
a += 10;
return a;
}
同样的DLL代码,如果是在VC6中编译后,在CB中是可以调用的。
下面是完整的DLL代码:
////////////////////
Simple.h
///////////////////
extern "C" _declspec(dllexport) int add(int a);////////////////////
Simple.cpp
///////////////////
#include "Simple.h"int add(int a)
{
a += 10;
return a;
}
另外, 声明__stdcall用标准调用试下.
http://blog.csdn.net/akirya/archive/2008/02/14/2093031.aspx
如果是不同的计算机的话,应该是缺少VC2005的运行时,你可以选择静态链接DLL。
在项目属性里面选择"C/C++ -> 代码生成 -> 运行时库",修改为"多线程(/MT)"或者"多线程调试(/MTD)"