vs工作室2015与XP和wix 3.10.2

时间:2016-05-02 12:26:49

标签: visual-c++ wix windows-xp wix3 wix3.10

我们正在使用Visual Studio 2015与wix 3.10.2015。

在win7 32位上安装时我们没有问题

在XP上安装时,在dll中调用自定义操作时会出现以下错误。

name<-file(".dat", "rb")
size<-(file.info("Path/Name.dat")$size)/8
rB<-readBin(name, numeric(), size, endian="little")
size<-length(rB)
sep<-which(rB>10000) # time steps
len<-diff(sep,1) # lags
len<-c(len,(length(rB)-tail(sep,1)+1)) # last value
mat<-matrix(NA,(size-length(sep)+14),4) # matrix
for(i in 1:(length(sep))) # fill the matrix
{
mat[sep[i]:(sep[i]+len[i]-2),1]<-i
mat[(sep[i]):(sep[i]+len[i]-2),2]<-(1:(len[i]-1))
mat[(sep[i]):(sep[i]+len[i]-2),3]<-rB[sep[i]]    
mat[(sep[i]):(sep[i]+len[i]-2),4]<-rB[(sep[i]+1):(sep[i]+len[i]-1)]
}
mat<-mat[which(!is.na(mat[,1])),]

这是customAction.cpp文件中的声明:

Action start 16:03:50: MyCustomAction.
Action ended 16:03:51: MyCustomAction. Return value 3.
Action ended 16:03:51: INSTALL. Return value 3.

wix声明:     

extern "C" _declspec(dllexport) UINT __stdcall MyCustomAction(MSIHANDLE hInstall);

extern "C" UINT __stdcall MyCustomAction(MSIHANDLE hInstall)
{
    HRESULT hr = S_OK;
    UINT er = ERROR_SUCCESS;
    // commented out code 
    return WcaFinalize(er);
}

有什么想法吗?线索?方向将非常感谢

1 个答案:

答案 0 :(得分:1)

很可能您的Visual C ++项目是使用“现代”工具集构建的,您应该使用支持Windows XP的“旧版”工具集版本。

Configuring C++ 11 Programs for Windows XP