
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может кто сталкивался. Помогите, пожалуйста разобраться с проблемой.
Для разбора csv файла используется следующий код:
//Импорт wininet.dll
#import "wininet.dll"
int InternetAttemptConnect (int x);
int InternetOpenA(string sAgent, int lAccessType,
string sProxyName = "", string sProxyBypass = "",
int lFlags = 0);
int InternetOpenUrlA(int hInternetSession, string sUrl,
string sHeaders = "", int lHeadersLength = 0,
int lFlags = 0, int lContext = 0);
int InternetReadFile(int hFile, int& sBuffer[], int lNumBytesToRead,
int& lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#import
//Процедура чтения файла CSV
string ReadWebPage(string url)
{
WriteFileTest(url);
if(!IsDllsAllowed())
{
Alert("Необходимо в настройках разрешить использование DLL");
return("");
}
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Alert("Ошибка при вызове InternetAttemptConnect()");
return("");
}
int hInternetSession = InternetOpenA("Microsoft Internet Explorer",
0, "", "", 0);
if(hInternetSession <= 0)
{
Alert("Ошибка при вызове InternetOpenA()");
return("");
}
int hURL = InternetOpenUrlA(hInternetSession,url, "", 0, 0, 0);
if(hURL <= 0)
{
Alert("Ошибка при вызове InternetOpenUrlA()");
InternetCloseHandle(hInternetSession);
return(0);
}
int cBuffer[256];
int dwBytesRead[1];
string TXT = "";
while(!IsStopped())
{
for(int i = 0; i<256; i++) cBuffer[i] = 0;
bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0) break;
string text = "";
for(i = 0; i < 256; i++)
{
text = text + CharToStr(cBuffer[i] & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
if(StringLen(text) == dwBytesRead[0]) break;
text = text + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
}
TXT = TXT + text;
Sleep(2);
}
if(TXT == "") Alert("Нет считанных данных");
InternetCloseHandle(hInternetSession);
return(TXT);
}
Так вот. На одном компьютере все работает нормально, на втором все работает, а на третьем не хочет ни в какую.
Что только не делали и wininet.dll переписывали и винду переустанавливали и IE обновляли. Ни в какую.
В чем еще может быть загвоздка???
При прикреплении индикатора к графику терминал просто вылетает и сообщает об ошибке. Что то вроде этого:
There has been a critical error
Time : 2008.09.08 10:29
Program : Client Terminal
Version : 4.00 (build: 216, 16 Apr 2008)
OS : Windows 2000 Professional 5.0 Service Pack 4 (Build 2195)
Processors : 1 x X86 (level 15)
Memory : 515568/74680 kb
Exception : C0000005
Address : 0046138C
Access Type : read
Access Addr : 1CCB7D4B
Registers : EAX=00000000 CS=001b EIP=0046138C EFLGS=00010202
: EBX=0000039C SS=0023 ESP=0012D7EC EBP=0012D824
: ECX=1CCB7D4B DS=0023 ESI=0045F5FC FS=003b
: EDX=0326E170 ES=0023 EDI=0330A988 GS=0000
Stack Trace : 00454D23 05FA2238 00489370 0818BE8D
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
Modules :
1 : 00400000 002A9000 c:\documents and
settings\Ðàáî÷èé
ñòîë\fibo group\terminal.exe
2 : 60000000 00045000 c:\winnt\system32\msctf.dll
3 : 60AF0000 0001A000 c:\program files\crypto
pro\winlogon\cpadvai.dll
4 : 6B1E0000 00005000 c:\winnt\system32\msimg32.dll
5 : 6BD00000 0000D000 c:\winnt\system32\syncor11.dll
6 : 6C120000 0000E000 c:\winnt\system32\mfc42loc.dll
7 : 6C290000 000FB000 c:\winnt\system32\mfc42.dll
8 : 71710000 00084000 c:\winnt\system32\comctl32.dll
9 : 745E0000 002C6000 c:\winnt\system32\msi.dll
10 : 74F60000 0001E000 c:\winnt\system32\msafd.dll
11 : 74FA0000 00007000 c:\winnt\system32\wshtcpip.dll
12 : 74FB0000 00008000 c:\winnt\system32\ws2help.dll
13 : 74FC0000 00014000 c:\winnt\system32\ws2_32.dll
14 : 76AE0000 0003E000 c:\winnt\system32\comdlg32.dll
15 : 77070000 00023000 c:\winnt\system32\cscdll.dll
16 : 770F0000 00078000 c:\winnt\system32\rpcrt4.dll
17 : 772C0000 00066000 c:\winnt\system32\shlwapi.dll
18 : 77520000 00031000 c:\winnt\system32\winmm.dll
19 : 77820000 0003E000 c:\winnt\system32\cscui.dll
20 : 779B0000 0009B000 c:\winnt\system32\oleaut32.dll
21 : 77E10000 00069000 c:\winnt\system32\user32.dll
22 : 77F40000 0003C000 c:\winnt\system32\gdi32.dll
23 : 77F80000 0007D000 c:\winnt\system32\ntdll.dll
24 : 78000000 00045000 c:\winnt\system32\msvcrt.dll
25 : 79060000 00065000 c:\winnt\system32\advapi32.dll
26 : 79430000 000B4000 c:\winnt\system32\kernel32.dll
27 : 7CB60000 0008F000 c:\winnt\system32\clbcatq.dll
28 : 7CD70000 000EF000 c:\winnt\system32\ole32.dll
29 : 7CE80000 00246000 c:\winnt\system32\shell32.dll
Call stack :
0045F580:1E0C [0046138C] ?ExecuteStaticAsm@CExpertInterior
(terminal.exe)
00454C10:0113 [00454D23] ?RunExpertInt@CExpertInterior (terminal.exe)
00489370:0000 [00489370] ?Name@CIndCustom (terminal.exe)