zoukankan      html  css  js  c++  java
  • 通过代码注册COM、DLL组件

      注册代码如下:

     C++ Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    //
    //=================================================//
    //If returns    Zero, DLL successfully registered...
    //        -2 means DLL can not be loaded..
    //        -3 means DLL Entry point can not be found..
    //        -4 means Could not register the file... 
    //                 DLL Registration failed..
    //================================================//
    int RegisterComponent(char *absPath)
    {
        HINSTANCE hDLL = LoadLibrary(absPath);
        
    if(hDLL == NULL)
        {
            
    //-2 means DLL can not be loaded..
            return -2;            
        }

        
    typedef HRESULT (CALLBACK *HCRET)(void);
        HCRET lpfnDllRegisterServer;
        lpfnDllRegisterServer = 
             (HCRET)GetProcAddress(hDLL, 
    "DllRegisterServer");

        
    if(lpfnDllRegisterServer == NULL)
        {
            
    //-3 means DLL Entry point can not be found..
            return -3;            
        }

        
    //Call the function by function pointer..
        if(FAILED((*lpfnDllRegisterServer)()))            
        {
            
    //-4 means Could not register the file... 
            //DLL Registration failed..
            return -4;            
        }
        
    return 0;
    }
    //

      测试代码:

     C++ Code 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //
    int nVal = RegisterComponent("C:\KvDateTime.OCX");
    if(nVal == 0)
    {
        AfxMessageBox(
    "Component Successfully Registered...");
    }
    else if(nVal == -2)
    {
        AfxMessageBox(
    "DLL can not be loaded.. Reason could "
           
    "be path is incorrect or.. Component is corrupt");
    }
    else if(nVal == -3)
    {
        AfxMessageBox(
    "DLL Entrypoint for function "
                     
    "DLLRegisterServer could not be found..");
    }
    else if(nVal == -4)
    {
        AfxMessageBox(
    "DLL Registration Failed..");
    }
    else
    {
        AfxMessageBox(
    "Unknown error in registering the file..");
    }
    //
  • 相关阅读:
    web框架基础
    前端基础之DOM和jQuery
    前端基础之JavaScript
    前端基础之CSS
    福州大学W班-助教总结
    福州大学W班-个人最终成绩统计
    福州大学W班-Beta冲刺评分
    福州大学W班-alpha冲刺评分
    福州大学W班-团队作业-随堂小测(同学录)成绩
    福州大学W班-需求分析评分排名
  • 原文地址:https://www.cnblogs.com/MakeView660/p/8446579.html
Copyright © 2011-2022 走看看