我根据Creating COM using ATL in C++ from VS2012中的描述使用ATL创建了简单的COM对象,并使用regsvr32.exe在系统中注册。但我不确定它是否已准备好像PHP这样的脚本语言。我正在尝试使用来自script location
的Power Shel脚本找到我的对象function Get-ComObject {
param(
[Parameter(Mandatory=$true,
ParameterSetName='FilterByName')]
[string]$Filter,
[Parameter(Mandatory=$true,
ParameterSetName='ListAllComObjects')]
[switch]$ListAll
)
$ListofObjects = Get-ChildItem HKLM:\Software\Classes -ErrorAction SilentlyContinue | Where-Object {
$_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")
} | Select-Object -ExpandProperty PSChildName
if ($Filter) {
$ListofObjects | Where-Object {$_ -like $Filter}
} else {
$ListofObjects
}
}
我找不到我的ATLProject1.SomeObject类。我的项目缺少什么?
答案 0 :(得分:0)
此脚本未考虑Application.Object.Version
格式的AppID。
将-match '^\w+\.\w+$'
替换为-match '^\w+\.\w+(?:\.\d+)?$'
。