在vc中编了一个dll,经测试可以在vc中调用。但是我想在vb中调用该dll,使用windows所带的regsvr32对其进行注册时,提示“...dll was loaded,but the DllRegisterServer Entry Point was not found.”请高手提供解决方案或提供参考资料。小弟vb还比较熟,vc刚接触,请各位指点。

解决方案 »

  1.   

    dll不需要注册,COM组件才需注册
      

  2.   

    在vb标准模块之前声明dll中的函数就可以了,语法同声明api函数是一样的。
    另外,在dll中导出函数一定要加extern “C”关键字。比较好的写法是
    extern "C" __stdcall void test(void); // 声明了一个 void test(void)函数
    最大的问题可能是VB中找不到相应的符号,这时候最好为DLL写一个def文件,像这样
    Library test
        test @1 privatedef文件具体语法请看MSND
      

  3.   

    不要混淆了普通dll和包含COM组件的dll。
      

  4.   

    对,先弄清楚你的dll是不是com组件
    不是组件的dll不用注册