![]() |
![]() |
![]() |
Новый
проект
Для ознакомления
с возможностями MIDL создайте новый пустой проект типа Win32 DLL. Для этого:
//======
Импорт библиотечных определений
import "oaidl.idl";
import
"ocidl.idl";
//======
Уточненное описание интерфейса ISay
[
object,
uuid(170368DO-85BE-43af-AE71-053F506657A2) ,
helpstring ("My Test DLL COM-server ISay")
]
interface ISay : lUnknown
{
HRESULT
Say();
HRESULT SetWord([in]BSTR word);
}
//======
Описание библиотеки типов
[
uuid
(0934DA90-608D-4107-9ECC-C7E828AD0928),
version
(1.0),
helpstring ("My Test DLL COM-server Type Library")
]
library
MyCom {
importlib("stdole32.tlb")
;
[uuid(9B865820-2FFA-lld5-98B4-OOE0293F01B2)]
//======
Описание класса реализации интерфейса
coclass CoSay
{
[default] interface ISay; };
};
Попробуйте
откомпилировать новый файл описания интерфейса, используя клавиатурную комбинацию
Ctrl+F7. Если на этом этапе возникнут ошибки, то проверьте настройку проекта
View
>
Property Pages
>
MIDL > General > MkTy ре Lib
Compatible (она должна быть в состоянии No) и повторите компиляцию. После успешного
ее завершения просмотрите содержимое папки проекта. В ней должны появиться новые
файлы: MyComTLib_h.h, MyComTLibJ.c, MyComTLib_p.c и dlldata.c. Эти файлы, как
было сказано, помогают обеспечить взаимодействие клиента с сервером. В результате
их компиляции и сборки будет сгенерирована DLL, в которой реализованы коды заглушек
proxy/stub.
Для того чтобы
двинуться дальше, вам необходимо взять некоторые файлы из папки МуСот с предыдущим
проектом типа DLL.
MyComTLib.def
: Declares the module parameters. LIBRARY "MYCOMTLIB.dll"
EXPORTS .
DllGetclassObject PRIVATE
DllCanUnloadNow PRIVATE
![]() |
![]() |
![]() |