1)Register control是不是只能引入ActiveX DLL??? 你可以使用ActiveX Control Pad看看...
2)不注册在ASP中应该是不能使用的, 因为程序找不到CLSID, 也就造不到成员函数...
3)VC++调用DLL必须要有.H文件, 因为他要引出这些函数, VC好像还没有这么智能...
4, 5)VB我不是很熟悉...

解决方案 »

  1.   

    关于问题5:VB中完全可以象调用标准的windows的DLL那样,只要*.dll就可以!
    只是VB中别忘了声明喔!:-)
      

  2.   

    1)由2)知道你是要写一个ActiveX,他是COM组件.COM有自注册,和非自注册文件
    自注册的要提供两个用于注册的入口函数DllRegisterServer和DllUnregisterServer
    对于非自注册的Dll(你写的)要单独对注册信息在注册表中来配置.(说起来太累)
    VC中用ATL Com AppWizad可以生成自注册的,VB的AciveX向导也可以生成.
    你的dll是怎么生成的.
    3)不要.H也可以,不过使用起来要麻烦一点.
    a. LoadLibray b. GetProcessAddress c. 使用 d. FreeLibray
    用这种方法你自己要知道dll的输出函数.
    Dll的头文件是告诉要使用的此dll的程序此dll输出了那些函数.否则程序自己怎么
    知道.比如写一个dll,你要用此dll,用静态联编,你是知道此dll输出了什么,可是
    你的程序不知道呀.所以要用dll的.h来告诉你的程序.
    同样,如果你用其他的语言来使用此dll,要用不同的语言来告诉你的程序此dll
    的输出.如Delphi中要写一个.pas 来写出此dll的输出,用pascal的语法.
    vb用VB的语法,等等.
     
      

  3.   

    1)一般的DLL是不能注册的。只有COM组件的DLL才能注册。
    3)DLL的调用在VC中有两种方式,一是需.H和.lib是静态调用,二是用Loadlibrary()是只要有DLL即可。
    5)VB,PB中调用VC写的DLL与调用WINDOWS API函数的方式一样,不过要将系统DLL的名称该为VC编的DLL的名称。
      

  4.   

    DLL有多种类型,ASP中一般使用ActiveX DLL, 这类的DLL需要注册,而类似User32.dll这样的DLL是不需要注册的。所以:
    1:你的DLL是第二种。
    2,4:必须把它改写为 ActiveX。
    3: 如果没有*.H C编译器无法工作。
    5:如果是第一种DLL, 那和User32.dll用法一样。VB中不要*.h 但要Declare。如果是ActiveX DLL就只需要CreateObject后直接使用就行了,当然如果在非asp环境中使用出于性能考虑最好引用一下实现前期绑定。