powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Dll - экспорь функций
8 сообщений из 8, страница 1 из 1
Dll - экспорь функций
    #35340938
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть код приведен ниже... в общем то какой именно значения не имеет... Взят туупо из примера написаного в VB 6.0 импортирован в VS 2005... ОЧень надо в кротчайшие сроки сделать ДЛЛку с экспортируемыми функциями этого класса... сейчас дллка получается но она ничего не экспортирует... как на VB задать exports не знаю((






Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Option Strict Off
Option Explicit On
<System.Runtime.InteropServices.ProgId("CNotify_NET.CNotify")> Public Class CNotify
    Implements PDDirectLib.IPDClientNotify
    Dim fcf As FConfigure
    Public Function IPDClientNotify_BeginProcess() As Boolean Implements PDDirectLib.IPDClientNotify.BeginProcess
        Dim pSync As New CSync
        pSync.Synchronize()
        IPDClientNotify_BeginProcess = False
    End Function
    Public Sub IPDClientNotify_CfgConduit(ByVal nCreatorId As Integer, ByVal nUserId As Integer, ByVal bstrUserName As String, ByVal bstrPathName As String, ByRef nSyncPerm As Integer, ByRef nSyncTemp As Integer, ByRef nSyncNew As Integer, ByRef nSyncPref As Integer) Implements PDDirectLib.IPDClientNotify.CfgConduit
        fcf = New FConfigure
        fcf.nSyncType = nSyncPerm
        fcf.ShowDialog()
        If Not fcf.bCancel Then
            nSyncNew = fcf.nSyncType
            nSyncPref = fcf.nSyncPref
        End If
        nSyncNew = PDDirectLib.ESyncTypes.eSlow
        fcf.Dispose()
        fcf = Nothing
    End Sub
    Public Sub IPDClientNotify_ConfigureConduit(ByVal pPathName As String, ByVal pRegistry As String, ByRef nSyncPref As Integer, ByRef nSyncType As Integer) Implements PDDirectLib.IPDClientNotify.ConfigureConduit
        fcf = New FConfigure
        fcf.pPath = pPathName
        fcf.pRegistry = pRegistry
        fcf.nSyncType = nSyncType
        fcf.ShowDialog()
        If Not fcf.bCancel Then
            nSyncType = fcf.nSyncType
            nSyncPref = fcf.nSyncPref
        End If
        nSyncType = PDDirectLib.ESyncTypes.eSlow
        fcf.Dispose()
        fcf = Nothing
    End Sub
    Public Function IPDClientNotify_GetConduitInfo(ByVal infoType As PDDirectLib.EGetConduitInfo, ByVal dwCreatorId As Integer, ByVal dwUserId As Integer, ByVal bstrUserName As String) As Object Implements PDDirectLib.IPDClientNotify.GetConduitInfo
        If infoType = PDDirectLib.EGetConduitInfo.eGetConduitName Then
            IPDClientNotify_GetConduitInfo = "SyncExDll"
        End If
        If infoType = PDDirectLib.EGetConduitInfo.eGetDefaultAction Then
            IPDClientNotify_GetConduitInfo = PDDirectLib.ESyncTypes.eFast
        End If
        If infoType = PDDirectLib.EGetConduitInfo.eGetMfcVersion Then
            IPDClientNotify_GetConduitInfo = PDDirectLib.EMfcVersion.ePDMFC_NOT_USED
        End If
        If infoType = PDDirectLib.EGetConduitInfo.eGetConduitVersion Then
            IPDClientNotify_GetConduitInfo =  1 . 0 #
        End If
    End Function
End Class
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35340964
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное ответ тоже значения не имеет. Можно взять и написать тупо любую муть - пусть автор сам ищет зерна истины.

Или для начала попытается расшифровать собственный термин "экспортируемые функции" - в VB6 он лишен всякого смысла.
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35340998
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспортируемые функции DLL... Это общее понятие не имеющее отношения к языку програмирования... в C++ для объявления функций экспортируемыми существует зарезирвированное слово Exports...

например указав так
exports coolFunc=IPDClientNotify_GetConduitInfo
после этого я мог бы подключить эту DLL в референсес того же VB и использовать ее...

Список экспортируемых функций DLL можно посмотреть различным софтом... я пользуюсь PE EXPLORER (wasm.ru), после компиляции моей DLL список пуст. То есть я не могу вызывать ни одной функции равнозначно как они бы были объявлены private... Раньше я не работал ни с VS ни с VB в чистом виде... Поэтому чего-то недопонимаю и возможно решение где-то совсем рядом.
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35341035
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так у вас ведь библиотека класса, а не плоская DLL
вот и обращайтесь с ней как с COM-объектом:

Код: plaintext
1.
Set obj=CreateObject("CNotify_NET.CNotify")
obj.IPDClientNotify_BeginProcess
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35341068
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень даже имеющее. "Экспортируемыми" обычно называются функции, обитающие в native dll, в VB они импортируются через declare. Native dll создать на VB сложно, но можно.

Однако прозвучало ключевое слово references, значит создается ActiveX dll. Функция объявлена как Public, но не видна, это может означать 1) что функция объявлена в модуле, а модуль - всегда приватный член библиотеки, его публичные функции видны только в самой библиотеке; 2) что функция объявлена в классе, которы сам является private. Во втором случае нужно поменять instancing у этого класса.
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35341920
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле это не актив икс я просто перевел это на понятные мне в VB термины - неправвильно перевел... DLL призвана выполнять функцию кондуита (conduit) фиговины что выполняет синхронизацию устройств под управлением PalmOS с пк... в конкретном случае терминала сбора данных... Для этого моя dll должна реализовывать интерфейс PDDirectLib.IPDClientNotify и экспортировать 4 функции пример реализации которых я привел... кстати взятый из примера к CDK (Conduit Development Kit)... поскольку пример не работает делаю вывод что неправильно что-то компилирую или неправильно выполнил перехожд на VS 2005...
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35342044
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятие "интерфейс" сначала относилось именно к активикс, а точнее к com в целом. Другое дело, что теперь оно относится и к .net-классам которые по умолчанию не представляются как com-классы. Если PDDirectLib.IPDClientNotify - com-интерфейс, то где-то в свойствах нужно установить что-то вроде "expose to com", лучше спросите об этом на соответствующем форуме.
...
Рейтинг: 0 / 0
Dll - экспорь функций
    #35342116
Grayscale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо попробую))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Dll - экспорь функций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]