Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.74
Zerg1
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 52
#1

Взаимодействие VB и VC++ - C++

01.09.2007, 06:01. Просмотров 4285. Ответов 3
Метки нет (Все метки)

Взаимодействие VB и VCPP.

VB60 и VCPP50.

Помогите решить проблемку. Есть VB проект и dll на плюсах.
Всё бы хорошо и всё работало, пока не появилась проблемка. Очередная новая функа в dll виснет глушняком! Хэлп!
Повторяю, dll писать умею, уже много функций работает, а вот тут засада.

Итак. Вот код на VB.
Visual Basic
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
Public Sub PaintMap()
Dim b As String: b = String(2000000, 0)
Dim C As Long, i As Long
Dim x As Long, y As Long
 
If OptionMapSize(0).Value = True Then
    C = 20
Else
    C = 45
End If
MsgBox "calling FM"
 
FillMap C, b, 1, Lang
MsgBox b ‘ сюда уже не попадаем, FillMap висит !!!!!!!!!!!!!
MsgBox "FM done"
i = 1
Gmap.ScaleMode = 3
Gmap.AutoRedraw = True
For y = 0 To 299
    For x = 0 To 299
        C = 1
        i = i + 1
        Gmap.PSet (x, y), C
        Next x
    Next y
Gmap.AutoRedraw = False
End Sub
В VB прототип описан как
Visual Basic
1
Public Declare Sub FillMap Lib "gsup.dll" (ByVal countries As Long, ByVal b As String, ByVal names As Long, ByVal language As Long)
А кот код функи в dll.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EXPORT void __stdcall
FillMap(UINT32 C, UBYTE8 *buf, UINT32 names, UINT32 lang)
{
MAP map(20);
buf[0] = 'H'
buf[1] = 'B'
 
//return; если тут раскомментарить. то всё OK! Есть воздействие на бэйсик, но мне то надо, чтобы buf передался в Convert и был заполнен там!!!!!!!!!!!!!!!!
DP0("FM:0");// это функа отладочной печати
map.SetC(C);
DP0("FM:1");
map.UnpackMap(msg.map);
DP0("FM:2");
map.Convert(NULL, buf, names, lang); // вот тут зависон! Трёшка из следующей строчки никогда не печатается.
DP0("FM:3");
}
А вот что такое Convert. Вообще-то, функа – бетон, вне dll – работает на ура, а тут даже не хрюкает. Полная смерть. Смотрите сами. Вариант обрезанный, но и он виснет, на печать ничего не выходит. Что делать?
C++
1
2
3
4
5
6
7
void MAP::Convert(BYTE8 *fn, UBYTE8 *buf, UINT32 names, UINT32 l)
{
DP0("start Convert(...)");
buf[2] = 'L'
buf[3] = 'M'
return;
}
Даже непонятно, где вообще зависон происходит. Наверное, я чего-то не знаю про dll. Помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2007, 06:01     Взаимодействие VB и VC++
Посмотрите здесь:

Взаимодействие программы и ОС - C++
Помогите мне описать, пожалуйста, подробнее - как взаимодействуют между собой эта программа и операционная система?Прям очень надо(( ...

Взаимодействие с интернетом - C++
Напишите пожалуйста, про что читать:)

Взаимодействие C++ и Python - C++
Привет! Недавно разговаривал с другом, который учится за границей в сфере информационных технологий(не программирование, что то, связанное...

Взаимодействие с железом - C++
До сих пор не разу не писал программы которые бы как либо через консоль взаимодействовали с функциями машины (Мои программы кроме чтения и...

Взаимодействие процессов - C++
Нужно написать задачу, в которой дано 10 процессов (там P1, P2, …, Р10, например) Функционирование и взаимодействие процессов следующее: ...

Взаимодействие классов - C++
Допустим, в первом классе у нас объявлена какая-либо переменная, например проинициализированная строка, объявленная в секции private. Как в...

Взаимодействие плагинов - C++
Приветствую, товарищи. Возникла такая необходимость. Намерен сделать два плагина. Конкретнее, два VST-плагина для звуковых редакторов,...

Межпроцессное взаимодействие - C++
Добрый день. Подскажите как организовать межпроцессорное взаимодействие между 2мя программами одна на python другая на C++?

Взаимодействие объектов - C++
При написании менеджера объектов для движка столкнулся с проблемой взаимодействия объектов между собой. Например есть классы Player и...

Межпроцессорное взаимодействие - C++
Добрый день. Может быть кто знает готовые библиотеки реализующие клиент-сервер (любые, кроме сокетов)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zerg1
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 52
01.09.2007, 06:03  [ТС]     Взаимодействие VB и VC++ #2
DP0("start Convert(...)");

это сообщение не выводится в файл лога.

значит функа даже не начинает исполняться.

мистика...
Zerg1
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 52
04.09.2007, 23:59  [ТС]     Взаимодействие VB и VC++ #3
Разобрался.

Реально в Convert() много наобъявлено статических многомерных массивов, а ограничение на стэк - 1 Мб.

Переписал код и теперь память под массивы беру из кучи - всё заработало.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
05.09.2007, 15:25     Взаимодействие VB и VC++ #4
молодец!
Yandex
Объявления
05.09.2007, 15:25     Взаимодействие VB и VC++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru