Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Странная проблема с екзешником (50$) Добавлено: 02.01.09 22:44  

Автор вопроса:  Champion | Web-сайт: afhelp.in.ua | ICQ: 461506481 
компилю проект - запускаю екзешник - всё вери гуд

делаю сетап - устанавливаю на другую машину - запускаю - звук бип ... и всё

на проблемной машине ставлю ВБ6 - компилю проект - запускаю exe - всё гуд

беру этот екзешник обратно на первую машину ... опять бип и ноль реакции, как в предыдущем случае

по сути какая-то проблема с XP styles и Microsoft.Windows.Common-Controls 6.0, потому что екзешник даже не инициализируется (Sub Main) с манифестом или без

в общих чертах, кто-то сталкивался с такой проблемой?
сроки горят
голова болит:)

если кто из гуру не прочь поиграться с этой проблемой, оплата 50$, возможно и больше, но обосновано


вводные данные:
исходника 1.5МБ
осх - 15 штук, большая часть переделанные контролы с vbaccelerator.com
+
MSWINSCK.OCX
RICHTX32.OCX
shdocvw.dll


если не тут, то ася 4615ноль648один
буду благодарен за любую помощь

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 03.01.09 06:16
Телепатия говорит мне, что кто-то забыл вызвать InitCommonControls.
Z293789663650

Ответить

Номер ответа: 2
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #2
Добавлено: 03.01.09 10:41
да нет, всё на месте

  1. Public Function InitCommonControlsVB() As Boolean
  2.    On Error Resume Next
  3.    Dim ICCEx As tagINITCOMMONCONTROLSEX
  4.    ' Ensure CC available:
  5.    'ClearBuffer 1
  6.    'AddToBuff "start " & vbCrLf, 1
  7.    'SaveF App.Path & "\icc.txt", GetBuff(1)
  8.    With ICCEx
  9.       'AddToBuff "lngSize " & .lngSize & vbCrLf, 1
  10.       'SaveF App.Path & "\icc.txt", GetBuff(1)
  11.        .lngSize = LenB(ICCEx)
  12.        'AddToBuff "lngSize " & .lngSize & vbCrLf, 1
  13.        'SaveF App.Path & "\icc.txt", GetBuff(1)
  14.        'AddToBuff "lngICC " & .lngICC & vbCrLf, 1
  15.        'SaveF App.Path & "\icc.txt", GetBuff(1)
  16.        .lngICC = ICC_USEREX_CLASSES
  17.        'AddToBuff "lngICC " & .lngICC & vbCrLf, 1
  18.        'SaveF App.Path & "\icc.txt", GetBuff(1)
  19.    End With
  20.    InitCommonControlsEx ICCEx
  21.    'AddToBuff "Err.Number " & Err.Number & vbCrLf, 1
  22.    'SaveF App.Path & "\icc.txt", GetBuff(1)
  23.    InitCommonControlsVB = (Err.Number = 0)
  24.    'AddToBuff "InitCommonControlsVB " & (InitCommonControlsVB <> 0) & vbCrLf, 1
  25.    'SaveF App.Path & "\icc.txt", GetBuff(1)
  26.    'ClearBuffer 1
  27.    On Error GoTo 0
  28. End Function
  29.  
  30.  
  31. Public Sub Main()
  32. If InitCommonControlsVB = True Then Load Form1
  33. End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #3
Добавлено: 03.01.09 10:59
уже не знаю, где копать

создал новый проект, добавил референсы и все котролы, скопировал формы из старого проекта - вставил в новый, скомпилировал – запускается нормально
значит проблема в исходниках?
как определить, где бяка?
прога же даже не вываливается с ошибкой

Ответить

Номер ответа: 4
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #4
Добавлено: 03.01.09 11:29
откомпилируй экзешник и сразу посмотри его размер, при переносе на другую машину размер если увеличивается, то у тебя вирус. Что то типа сектора4 или 5. скачай Dr.Web ® CureIt! и проверь комп.

Ответить

Номер ответа: 5
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #5
Добавлено: 03.01.09 11:54
размеры идентичны, антивирусы и файерволы на месте

скомпилировал со всеми возможными опциями, от пикода, до нейтив без оптимизации

вопрос сейчас наверное в том, как узнать, из-за чего не запускается вообще екзешник

Ответить

Номер ответа: 6
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #6
Добавлено: 03.01.09 11:58
ссылка на сетап в профиле

Ответить

Номер ответа: 7
Автор ответа:
 Father



Вопросов: 0
Ответов: 159
 Профиль | | #7 Добавлено: 03.01.09 12:13
прога же даже не вываливается с ошибкой

Наверняка On error resume next мешает это увидеть. В процесах-то прога наверняка висит.
Можно вести лог-файл или на худой конец MsgBox Err.Description во всех процедурах от Sub main до form1.show.
Щас скачаю, гляну.

Ответить

Номер ответа: 8
Автор ответа:
 Father



Вопросов: 0
Ответов: 159
 Профиль | | #8 Добавлено: 03.01.09 12:41
Depends.exe говорит, что прилинкован KERNEL32.DLL и импортируется LoadLibrary, GetProcAddress, ExitProcess. Что делает у тебя ExitProcess? Вообщем, давай код.

Ответить

Номер ответа: 9
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #9
Добавлено: 03.01.09 13:05
Что делает у тебя ExitProcess?

lol =)

Ответить

Номер ответа: 10
Автор ответа:
 Champion



ICQ: 461506481 

Вопросов: 38
Ответов: 88
 Web-сайт: afhelp.in.ua
 Профиль | | #10
Добавлено: 03.01.09 13:11
LoadLibrary - это почти во всех контролах проверка версии comctl32.dll при инициализации

Private Sub UserControl_Initialize()
  ' For XP Visual Styles:
   m_hMod = LoadLibrary("shell32.dll";)
   InitCommonControls
   ...


  1. Private Function ComCtlVersion( _
  2.         ByRef lMajor As Long, _
  3.         ByRef lMinor As Long, _
  4.         Optional ByRef lBuild As Long _
  5.     ) As Boolean
  6. Dim hMod As Long
  7. Dim lR As Long
  8. Dim lptrDLLVersion As Long
  9. Dim tDVI As DLLVERSIONINFO
  10.  
  11.     lMajor = 0: lMinor = 0: lBuild = 0
  12.  
  13.     hMod = LoadLibrary("comctl32.dll")
  14.     If Not (hMod = 0) Then
  15.         lR = S_OK
  16.         '/*
  17.         ' You must get this function explicitly because earlier versions of the DLL
  18.         ' don't implement this function. That makes the lack of implementation of the
  19.         ' function a version marker in itself. */
  20.         lptrDLLVersion = GetProcAddress(hMod, "DllGetVersion")
  21.         If Not (lptrDLLVersion = 0) Then
  22.             tDVI.cbSize = Len(tDVI)
  23.             lR = DllGetVersion(tDVI)
  24.             If (lR = S_OK) Then
  25.                 lMajor = tDVI.dwMajor
  26.                 lMinor = tDVI.dwMinor
  27.                 lBuild = tDVI.dwBuildNumber
  28.             End If
  29.         Else
  30.             'If GetProcAddress failed, then the DLL is a version previous to the one
  31.             'shipped with IE 3.x.
  32.             lMajor = 4
  33.         End If
  34.         FreeLibrary hMod
  35.         ComCtlVersion = True
  36.     End If
  37.  
  38. End Function



и
  1. Private Sub UserControl_Terminate()
  2.    ' Detach the custom IOleInPlaceActiveObject interface
  3.    ' pointers.
  4.    With m_IPAOHookStruct
  5.       CopyMemory .IPAOReal, 0&, 4
  6.       CopyMemory .TBEx, 0&, 4
  7.    End With
  8.    pTerminate
  9.    If Not (m_hMod = 0) Then
  10.       FreeLibrary m_hMod
  11.    End If
  12. End Sub


ExitProcess не знаю где, сейчас ищу

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам