3 / 3 / 1
Регистрация: 05.07.2013
Сообщений: 39
|
|||||||||||
1 | |||||||||||
E_NOINTERFACE COM23.03.2015, 13:41. Показов 2282. Ответов 5
Метки нет Все метки)
(
Добрый день. Взял пример кода из книги Д. Роджерсона. Его скомпилированный вариант работает на ура, но при попытке повторить сам, получаю следующую ошибку:
IFace Кликните здесь для просмотра всего текста
main.cpp - Фабрика классов, сам класс и экспортируемые функции. Кликните здесь для просмотра всего текста
IDL Кликните здесь для просмотра всего текста
DEF Кликните здесь для просмотра всего текста
0
|
23.03.2015, 13:41 | |
23.03.2015, 13:41 | |
Ответы с готовыми решениями:
5
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
Ушел с форума
![]() ![]() |
||||||
23.03.2015, 17:54 | 2 | |||||
На первый взгляд, никакого "криминала" в коде нет.
Но очень смущает вот это:
Код
interface IX : IDispatch { import "oaidl.idl" ; HRESULT Fx() ; } ; разные сигнатуры метода Fx. И вообще, COM-серверы пишутся по-другому: сначала вы описываете интерфейсы в IDL-файле, компилируете его MIDL-компилятором и подключаете полученные файлы .c и .h к своему проекту. Пробуйте так. Самому описывать на C/C++ интерфейсы не нужно.
0
|
3 / 3 / 1
Регистрация: 05.07.2013
Сообщений: 39
|
||||||||||||||||
25.03.2015, 22:11 [ТС] | 3 | |||||||||||||||
Изменил функцию:
source_h.h source_i.c source_p.c dlldata.c Проблема в том, что при подключении последних двух возникают ошибки линковки. Пример: Файлы: source_h.h Кликните здесь для просмотра всего текста
source_i.c Кликните здесь для просмотра всего текста
0
|
3 / 3 / 1
Регистрация: 05.07.2013
Сообщений: 39
|
|||||||||||
25.03.2015, 22:11 [ТС] | 4 | ||||||||||
source_p.c
Кликните здесь для просмотра всего текста
dlldata.c Кликните здесь для просмотра всего текста
Ход построения: Кликните здесь для просмотра всего текста
1>------ Построение начато: проект: Win32Project11, Конфигурация: Debug Win32 ------
1>main.obj : error LNK2005: _DllCanUnloadNow@0 уже определен в dlldata.obj 1>main.obj : error LNK2005: _DllGetClassObject@12 уже определен в dlldata.obj 1>Source.def : warning LNK4222: экспортированному символу "DllGetClassObject" не следует присваивать порядковое число 1>Source.def : warning LNK4222: экспортированному символу "DllCanUnloadNow" не следует присваивать порядковое число 1>Source.def : warning LNK4222: экспортированному символу "DllRegisterServer" не следует присваивать порядковое число 1>Source.def : warning LNK4222: экспортированному символу "DllUnregisterServer" не следует присваивать порядковое число 1> Создается библиотека C:\Users\Conte_000\documents\visual studio 2012\Projects\Win32Project11\Debug\Win32Project11.lib и объект C:\Users\Conte_000\documents\visual studio 2012\Projects\Win32Project11\Debug\Win32Project11.exp 1>dlldata.obj : error LNK2019: ссылка на неразрешенный внешний символ _NdrCStdStubBuffer_Release@8 в функции _CStdStubBuffer_Release@4 1>dlldata.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__NdrDllGetClassObject@24 в функции _DllGetClassObject@12 1>dlldata.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__NdrDllCanUnloadNow@4 в функции _DllCanUnloadNow@0 1>dlldata.obj : error LNK2019: ссылка на неразрешенный внешний символ _NdrCStdStubBuffer2_Release@8 в функции _CStdStubBuffer2_Release@4 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_IUnknown_QueryInterface_Proxy@12" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_IUnknown_AddRef_Proxy@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_IUnknown_Release_Proxy@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_QueryInterface@12" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_AddRef@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_Connect@8" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_Disconnect@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_Invoke@12" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_IsIIDSupported@8" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_CountRefs@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_DebugServerQueryInterface@8" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_CStdStubBuffer_DebugServerRelease@8" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_NdrOleAllocate@4" 1>source_p.obj : error LNK2001: неразрешенный внешний символ "_NdrOleFree@4" 1>C:\Users\Conte_000\documents\visual studio 2012\Projects\Win32Project11\Debug\Win32Project11.dll : fatal error LNK1120: неразрешенных внешних элементов: 18 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
|
3 / 3 / 1
Регистрация: 05.07.2013
Сообщений: 39
|
|||||||||||
27.03.2015, 09:49 [ТС] | 5 | ||||||||||
Не работает, только когда пытаюсь импортировать библиотеку типов:
Кликните здесь для просмотра всего текста
Вот так все работает: Кликните здесь для просмотра всего текста
0
|
3 / 3 / 1
Регистрация: 05.07.2013
Сообщений: 39
|
|
30.03.2015, 12:24 [ТС] | 6 |
Код прекрасно работает из под c++ и Delphi, но в c++\CLI вылетает с ошибкой, при попытке вызова функции Fx().
0
|
30.03.2015, 12:24 | |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Ошибка Docker "Got permission denied while trying to connect to the Docker daemon socket at"
hw_wired 14.02.2025
Разработка с использованием Docker может иногда преподносить неожиданные сюрпризы, и одним из самых распространенных камней преткновения становится ошибка с отказом в доступе к демону Docker. . . .
|
Ошибка "No 'Access-Control-Allow-Origin' header is present on the requested resource"
hw_wired 14.02.2025
При разработке современных веб-приложений нередко сталкиваешься с ошибкой "No 'Access-Control-Allow-Origin' header is present on the requested resource". Эта проблема возникает из-за политики. . .
|
Как закрыть порт в Linux
hw_wired 14.02.2025
Управление сетевыми портами в Linux - непростая, но важная задача для обеспечения безопасности системы. Каждый открытый порт - это потенциальная уязвимость, через которую злоумышленики могут. . .
|
Ошибка Angular "Can't bind to 'taskForm' since it isn't a known property of 'form'"
hw_wired 14.02.2025
При разработке веб-приложений на Angular можно столкнуться с ошибкой "Can't bind to '' since it isn't a known property of 'form'". Эта ошибка появляется в консоли браузера когда мы пытаемся. . .
|
Сообщение Git "Pulling without specifying how to reconcile divergent branches is discouraged"
hw_wired 14.02.2025
При работе с системой контроля версий Git многие разработчики сталкиваются с предупреждающим сообщением "Pulling without specifying how to reconcile divergent branches is discouraged". Это. . .
|
Как настроить количество пробелов в отступах табов в Visual Studio Code
hw_wired 14.02.2025
Visual Studio Code предоставляет несколько гибких способов настройки табуляции, каждый из которых имеет свои преимущества. Самый простой и наглядный метод - через графический интерфейс настроек, где. . .
|
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
|
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
|
Автоматическое создание файла requirements.txt в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
|
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
|