COM の正しいインストール

  構成



COM のプロジェクトも作ったばかりの状態では、「デバッグ」になっています。リリースタイプに変更する必要が
あるのですが、以下のリリースタイプを選択して下さい

Win32 Release Min Dependency



  プロジェクト設定



構成の変更の直後では、C のランタイムライブラリを使用しているとエラーが出ます
これを回避するには、以下の事を行なって下さい

  • プロジェクト設定ダイアログを表示する
  • C/C++ タブを選択
  • カテゴリを「一般」にする
  • プリプロセッサの定義より ,_ATL_MIN_CRT を削除する



  インストールする為のプログラム

COM のインストール・アンインストールには、regsvr32.exe を使用します

「ファイルを指定して実行」から、引数を指定しないで実行すると簡単な引数の説明がダイアログで表示されます

通常、インストールする場合は、「regsvr32.exe dllのフルパス」と指定しますが、正しくインストールする場合は
(別の COM がインストール済みの場合があるので)いったんアンインストールする必要がありますが、常に手作業
は面倒なので WSH を使用します

install.vbs
  
Dim Fs,WshShell

ComDir = "D:\WSC\CLLib\MyCom\ReleaseMinDependency"
ComName = "MyCom.dll"
ComClass = "MyCom.MyAPI"

Set WshShell = CreateObject("WScript.Shell")

SystemDir = WshShell.ExpandEnvironmentStrings("%SYSTEMROOT%") & "\system32"
' カレントに COM がある場合は
' ComDir = WshShell.CurrentDirectory

on error resume next
strValue = WshShell.RegRead("HKCR\" & ComClass & "\CLSID\")
if Err.Number = 0 then
	strValue = "HKCR\CLSID\" & strValue
	strValue = strValue & "\InprocServer32\"
	strValue = WshShell.RegRead(strValue)
	strValue = "regsvr32.exe /u """ & strValue & """"
	Call WshShell.Run( strValue,,true )
end if
on error goto 0

Set Fs = CreateObject("Scripting.FileSystemObject")
Fs.CopyFile ComDir & "\" & ComName, SystemDir & "\", true

strValue = "regsvr32.exe """ & SystemDir & "\" & ComName & """"
Call WshShell.Run( strValue )
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ