|
|
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
Я создаю в VB динамический массив, после этого мне надо его передать в dll на VC 6.0 , а потом уже обработанный в dll массив использовать дальше в VB проекте. В VB я пишу Public Declare Function ww Lib "QQ.dll" (ByRef matrix() As Long, ByVal x As Long, ByVal i As Long, ByVal j As Long) As Boolean На VC bool CQQ::ww (long **n,long x,long i,long j) { n=new long * ; int g1,g2; long f; for (g1=0;g1<i;g1++) { n[g1]=new long [j]; } for (g1=0;g1<i;g1++) { for (g2=0;g2<j;g2++) { f=n[g1][g2]; if (f>=x) f=f+15; if (f<x) f=f-15; if (f>255) f=255; if (f<0) f=0; n[g1][g2]=f; } } return true; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 09:42 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
А дело вот какое. Массив который передаю из VB в dll остается не обработанным т.е. значения в массиве до обработки в dll и после ничем не отличаются хотя по плану должны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 17:22 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
все неправильно. 1. VB Boolean = VC short = VC VARIANT_BOOL 2. VB matrix() as long = OLE SafeArray, есть поддержка в ATL и ComUtils.h ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 17:33 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
Насчет второго не понял? VB matrix() as long = OLE SafeArray ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2004, 18:08 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
юзай COleSafeArray однозначно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 10:58 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы, я сделал без COleSafeArray вроде все работает. VB: Private Declare Function ww Lib "QQ.dll" (ByRef ar As Long, ByVal b As Long, ByVal h As Long, ByVal g As Long) ww(ar(1,1),b,h,g) VC: void CQQ::ww (long *n,long x,long h, long g) { int g2; long f; for (g2=0;g2<(g*h);g2++) { f=n[g2]; if (f>=x) f=f+15; if (f<x) f=f-15; if (f>255) f=255; if (f<0) f=0; n[g2]=f; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 19:13 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
ню-ню... а теперь покажи, как ты в VB это хозяйство вызываешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 01:47 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
А в VB это хоз. вызываю так: i = Val(Text1.Text) j = Val(Text2.Text) ReDim ar(1 To i, 1 To j) For i1 = 1 To i For j1 = 1 To j ar(i1, j1) = -10 Next j1 Next i1 f = ww(ar(1, 1), 4, i, j) Если теперь посмотреть массив то можно увидеть что он изменился. В VC я сделал небольшую ошибку не void, а short :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 07:51 |
|
||
|
Динамический массив???
|
|||
|---|---|---|---|
|
#18+
хитер... но делать так не стоит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:47 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2035454]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 337ms |

| 0 / 0 |
