回答編集履歴

1

確認するポイントの追記

2018/08/09 12:10

投稿

hmmm
hmmm

スコア818

test CHANGED
@@ -33,3 +33,115 @@
33
33
 
34
34
 
35
35
  Windbgの使い方が分からない場合はC++でDllRegisterServerを実行するEXEを作成してVisual Studioなどでデバッグする。
36
+
37
+
38
+
39
+ -----
40
+
41
+ 確認するポイントの追記
42
+
43
+
44
+
45
+ タイプライブラリは.idlから生成されます。
46
+
47
+ 生成された.tlbファイルは.rcファイル内で
48
+
49
+ 1 TYPELIB "MFCActiveXControl1.tlb"
50
+
51
+ のような命令でリソースIDが1として埋め込まれます。
52
+
53
+
54
+
55
+ まずは.idlファイルがなければプロジェクトに追加します。
56
+
57
+ これはもともとのvc6.0のプロジェクト内にあったはずです。
58
+
59
+ プロパティでファイルの種類がidlになっていることを確認します。
60
+
61
+ ![イメージ説明](292e7bd0d55755f6bd5b403fbf244cb7.png)
62
+
63
+
64
+
65
+ 次にプロジェクトのプロパティでMIDLの設定を見ます。
66
+
67
+ タイプライブラリが生成する設定になっていることを確認します。
68
+
69
+ ![イメージ説明](b9446aa2fb8fbbb65bfa71bcbc48ce4f.png)
70
+
71
+
72
+
73
+ リソースファイルのプロパティでファイルの種類を確認します。
74
+
75
+ ![イメージ説明](87fc633b89003c4686559c15976985f5.png)
76
+
77
+
78
+
79
+ もともとrcファイルに TYPELIBを埋め込む命令が書いてあって
80
+
81
+ .tlbファイルがない場合リソースコンパイラでエラーになるはずです。
82
+
83
+ ですので、.rcファイルも怪しい気がします。
84
+
85
+ .rcファイルをコードの表示で直接開きます。(もしくはメモ帳などで直接開く)
86
+
87
+
88
+
89
+ ```
90
+
91
+ //最初のほうに以下のようなブロックがあります。
92
+
93
+ //これは[リソースファイルのインクルード]の[コンパイル時に追加するファイル]
94
+
95
+ //の内容が登録されます。
96
+
97
+ 3 TEXTINCLUDE
98
+
99
+ BEGIN
100
+
101
+ "1 TYPELIB ""MFCActiveXControl1.tlb""\r\n"
102
+
103
+ "\0"
104
+
105
+ END
106
+
107
+
108
+
109
+ //終わりのほうに以下のようなインクルードの内容が展開された内容があります。
110
+
111
+ //こちらが実際にリソースコンパイラによって処理される命令です。
112
+
113
+ //これはリソースファイルをGUIから変更すると3 TEXTINCLUDE
114
+
115
+ //の内容をもとに自動生成されます。
116
+
117
+ //これが存在しないような気がします。
118
+
119
+
120
+
121
+ #ifndef APSTUDIO_INVOKED
122
+
123
+ /////////////////////////////////////////////////////////////////////////////
124
+
125
+ //
126
+
127
+ // Generated from the TEXTINCLUDE 3 resource.
128
+
129
+ //
130
+
131
+ 1 TYPELIB "MFCActiveXControl1a.tlb"
132
+
133
+
134
+
135
+ /////////////////////////////////////////////////////////////////////////////
136
+
137
+ #endif // not APSTUDIO_INVOKED
138
+
139
+
140
+
141
+ ```
142
+
143
+
144
+
145
+ 一度ActiveXを作成するプロジェクトを作成して
146
+
147
+ 自動で生成されるファイルや設定を見比べてみるといいと思います。