П о ч е м у...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

П о ч е м у...

Сообщение _Мика_ » 09.05.2005 (Пн) 22:26

Вот код на VB
Код: Выделить всё
Private Function MK7(sFilename As String) As String
Dim s As Currency
Dim sum As Currency
Dim btArray() As Byte
i = -1
s = 0
sum = 0
If Mid(sFilename, 2, 2) = ":\" Then
Open sFilename For Binary As #1
ReDim btArray(LOF(1) - 1)
Get #1, , btArray
Close #1
Do Until i = UBound(btArray)
DoEvents
i = i + 1
s = btArray(i) / (i + 1)
sum = sum + s
Loop
End If
MK7 = sum
End Function


А вот тот же самый код но на VC, написанный Ariman'ом



Код: Выделить всё
double __stdcall MK7(char *FileName)
{
double s=0,sum=0;
unsigned char *buffer;
unsigned long Len;
ifstream File(FileName);
File.seekg(0,ios::end);
Len=File.tellg();
File.seekg(0,ios::beg);
buffer=new unsigned char[Len];
File.read(buffer,Len);
File.close();
for(unsigned i=0;i<Len;i++)
{
   s=(double)(buffer[i])/(i+1);
   sum+=s;
}d

return sum;
}


Как не странно, они выдают разные значения!
П о ч е м у :?: :(
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 09.05.2005 (Пн) 22:39

Первое за что буду ругать это делай табы, разбираться в коде сложно!

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.05.2005 (Пн) 22:48

Здесь DLL, LIB, код ДЛЛки на С++, ВБшный проект для проверки и Сишный проект для проверки.....
Может, я к ночи не соображаю, но:
1)Код на ВБ выдает один результат
2)Код на С++ выдает другой результат(не ДЛЛка, а именно просто переписанная на С++ функция)
3)И наконец: ДЛЛка и в ВБ и в С++ выдает один и тот же резултат, НО совершенно отличный от п. 1 и п.2 !
Вложения
Mk7.rar
(26.27 Кб) Скачиваний: 34

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.05.2005 (Пн) 23:49

C++ писал(а):Error: mk7test.cpp(6,2):Unable to open include file 'STDAFX.H'
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 10.05.2005 (Вт) 0:20

BV
Да отруби ты Precompiled Headers, удали этот include и будет тебе счастье :D
А вообще - это же одни cpp! Можно созжать новый проект и подрубить их туда.....


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 124

    TopList