vb写的DLL名为check.dll 其中有函数FreeCode("102"),返回值0 或 1;我在程序这样写
 typedef bool (*FUNC)(CString);
 FUNC func;
 HINSTANCE hLibrary=::LoadLibrary("CHECK.DLL");
 if(hLibrary)
 {
   func=(FUNC)::GetProcAddress(hLibrary,"FreeCode");
   if(func("102")) //出错 a
   {
      ....
    } 
 }
在执行到if(func("102"))出错,提示"unhandled exception in 
  loginexe::ox0000005:access violation"
func的值总是=0;这样也不行.
include <ole2.h>
#include <comutil.h>// 指示链接 comsupp.lib 库. 这个库是 comutil.h 需要的.
#pragma comment(lib, "comsupp.lib")// #import 预处理指令导入指定的类型库.
#import "e:\debug\check.dll"int main()
{
    //初始化 COM
    CoInitialize(NULL);    //创建智能指针对象, 用 ProgID "check.Class1" 作为构造函数参数.
    check::_Class1Ptr ptrclass1("check.Class1");
    if (ptrclass1 != NULL) {        //调用方法
        ptrclass1->Hello();
                //注意, 在使用完后, pclass1 不需要调用 Release, 因为它是智能指针, 
    }    CoUninitialize();
}编译时提示check.tlh错,少; 为何.  那为高人知道DLL如何注册。