Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Взаимодействие 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. Помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2007, 06:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Взаимодействие VB и VC++ (C++):

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

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

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

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

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

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

4
Zerg1
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 52
01.09.2007, 06:03  [ТС] #2
DP0("start Convert(...)");

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

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

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

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

Переписал код и теперь память под массивы беру из кучи - всё заработало.
0
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
05.09.2007, 15:25 #4
молодец!
0
Omirserik
0 / 0 / 0
Регистрация: 08.02.2017
Сообщений: 51
18.11.2017, 16:01 #5
Можете скинуть готовый проект??
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2017, 16:01
Привет! Вот еще темы с ответами:

Взаимодействие классов - C++
Решил потренироваться и написать "игру". Есть класс игрок и класс бот. Как наладить их взаимодействие? З.Ы. да, я знаю, что в классах нет...

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

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

Межпроцессное взаимодействие - C++
Здравствуйте. Подскажите пожалуйста, как лучше и проще будет организовать межпроцессное взаимодействие. Есть динамическая библиотека...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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