Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Dll - экспорь функций / 8 сообщений из 8, страница 1 из 1
28.05.2008, 17:26
    #35340938
Grayscale
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dll - экспорь функций
есть код приведен ниже... в общем то какой именно значения не имеет... Взят туупо из примера написаного в 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
28.05.2008, 17:36
    #35340964
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dll - экспорь функций
Наверное ответ тоже значения не имеет. Можно взять и написать тупо любую муть - пусть автор сам ищет зерна истины.

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

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

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

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

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


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