crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Создание DLL и регистрация ее через regsvr32
silver47
  опции профиля:
сообщение 5.6.2013, 10:08
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Добрый день. Собственно вопрос такой: Необходимо создать DLL на Qt и вызывать ее в 1С. Чтобы это работало необходимо зарегистрировать библиотеку через regsvr32.

Собственно была такая штука:
dll.h
extern "C" {    
    float   getSomething();
}


dll.cpp
#include "dll.h"
float getSomething(){
....
return returningValue;
}


И Вроде как когда-то давным давно она подключалась. По крайней мере работает. Пробую зарегистрировать новую подобную dll или перерегистрировать старую получаю сообщение, что точка входа не найдена. Главный вопрос, как ее добавить и почему раньше регистрировалось )

Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 5.6.2013, 11:22
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


когда regsvr32 вызывается без параметров, она требует функции DllRegisterServer. иначе надо указывать в параметрах, что DllRegisterServer вызывать не требуется, но тогда будет нужна функция DllInstall.

P.S. к Qt вопрос отношения не имеет никакого.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 5.6.2013, 11:26
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Будьте так добры, подскажите как в таком случае решить проблему. Написать функцию DllRegisterService? Что в ней писать? Достаточно ли будет подобного:
STDAPI DllRegisterServer(void){
    return S_OK;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 5.6.2013, 20:09
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(silver47 @ 5.6.2013, 14:26) *
Написать функцию DllRegisterService? Что в ней писать? Достаточно ли будет подобного:

дык, это смотря что там эта 1С хочет от библиотеки.
минимально - хватит и простого возврата результата. но тогда какой смысл вообще её регистрировать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 6.6.2013, 6:19
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Iron Bug @ 5.6.2013, 23:09) *
но тогда какой смысл вообще её регистрировать?

Иначе 1С не видит библиотеки. Но я разобрался. Регистрировать нужно просто dynwrapx.dll, а потом, внимание, запустить 1С с правами администратора, тогда, и только тогда, произойдет чудо, и все заработает. В общем вопрос снят, вспомнил как делалось и почему прежняя версия работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 1:31