码迷,mamicode.com
首页 > 编程语言 > 详细

C++ DLL 获取 MSI Property

时间:2014-05-16 18:34:22      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   tar   

VS2010 创建  C++, Win32 DLL工程C-TEST。

Stdafx.h中,在<windows.h>之后 添加引用。

 

#include <msi.h>
#include <msiquery.h>

 

C-TEST.cpp

bubuko.com,布布扣
// C-TEST.cpp : Defines the exported functions for the DLL application.
//

#include "stdafx.h"
#include <tchar.h>

UINT GetProperty(MSIHANDLE hInstall)
{
    TCHAR* szValueBuf = NULL;
    DWORD cchValueBuf = 0;
    UINT uiStat =  MsiGetProperty(hInstall, TEXT("ProductName"), TEXT(""), &cchValueBuf);
    //cchValueBuf now contains the size of the property‘s string, without null termination
    if (ERROR_MORE_DATA == uiStat)
    {
        ++cchValueBuf; // add 1 for null termination
        szValueBuf = new TCHAR[cchValueBuf];
        if (szValueBuf)
        {
            uiStat = MsiGetProperty(hInstall, TEXT("ProductName"), szValueBuf, &cchValueBuf);
        }
    }

    MessageBox(NULL, szValueBuf, _T("Im GetProperty"), MB_OK);

    if (ERROR_SUCCESS != uiStat)
    {
        if (szValueBuf != NULL) {
            delete[] szValueBuf;

        }
        return ERROR_INSTALL_FAILURE;
    }

    // custom action uses MyProperty
    // ...

    delete[] szValueBuf;

    return ERROR_SUCCESS;

}

UINT _stdcall SampleFunction2(LPCTSTR applicationName, MSIHANDLE hInstall)
{
    MessageBox(NULL, applicationName ,_T("I‘m Sample Function2‘s message"), MB_OK);
    return GetProperty(hInstall);
}
View Code

 

添加 C-TEST.def 文件

LIBRARY "C-TEST"
EXPORTS
SampleFunction2

 

编译,

1) 如果没有 #include <tchar.h>,会出现 error C3861: ‘_T‘: identifier not found

 

2)error LNK1120: 1 unresolved externals

解决方案:

工程右键 Property -> Configuration Properties -> Linker / Input / Additional Dependencies

添加  msi.lib

bubuko.com,布布扣

 

编译通过。

C++ DLL 获取 MSI Property,布布扣,bubuko.com

C++ DLL 获取 MSI Property

标签:style   blog   class   code   c   tar   

原文地址:http://www.cnblogs.com/cindy-hu-23/p/3725794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!