我现在要将一个VB编写的Active DLL改用VC重写一遍,语句用的是C不是C++。这个DLL很简单,里面只有一个类,类里只有一个函数,做好后要由VB和ASP程序调用。我原先在建工程的时候选的是Win32 Dynamic-Link Library,但做成后注册不上,后听人说要做成COM才能在ASP里调用,于是改为ATL COM AppWizard,做成后可以注册,但在程序里无法调用,请教高手应该如何编写和设置。

解决方案 »

  1.   

    我只是建了一个工程把编好的函数胡乱的加了进去,因为不知道该如何做,眼前又没有可以请教的人。函数是用C编的,但文件是CPP文件。
    clsChecksum.h:
    class clsChecksum  
    {
    public:
    clsChecksum();
    virtual ~clsChecksum();
    char *Checksum(char *filename);
    };
    Checksum.def :
    LIBRARY      "Checksum.DLL"EXPORTS
    DllCanUnloadNow     @1 PRIVATE
    DllGetClassObject   @2 PRIVATE
    DllRegisterServer   @3 PRIVATE
    DllUnregisterServer @4 PRIVATEChecksumclsChecksum.cpp:
    里面是函数的代码。
      

  2.   

    用VC++写COM,必须用IDL,在接口类中定义输出。
      

  3.   

    你耐心点吧,COM技术不是这么简单的,你还是先把COM学会再说吧,没时间的话学一下用ATL开发COM的操作也行。你的DLL什么都没有,和COM组件还差远了,何况ASP里调用的COM必需是自动化的COM组件,得实现IDispatch 接口,学一下ATL吧,ATL有编好的模板。
      

  4.   

    用VC编真的那么那么麻烦吗?我用VB编这个DLL的时候几分钟就搞定了,今天就要改完测好,我没有时间现学ATL啊,学会需要多长时间呀,谁有Sample。