xxx.exe has encountered a problem...

What normally cause the error xxx.exe has encountered a problem and needs to close...? Under this condition:

1. No error when compiling.
2. Using external library (curl, chilkat ...)
3. Windows XP (Code::Blocks with mingw)

Just give me some ideas so I can google it. TQ
Nobody can guess for you, use a debugger to find out. Probably a access violation exception (reading/writing memory you don't own).

As both curl and chilkat libraries are most likely not the cause (I used both) post the full code to look at it.
I've posted here http://www.cplusplus.com/forum/beginner/96083/ before this.

I am asking that if anyone out there had the same problem before, if they did what would likely be the cause of the problem for example "probably an access violation exception" ^^

@modoran - have you tried the spider example from chilkat?
Last edited on
GaGoKoYa wrote:
@modoran - have you tried the spider example from chilkat?


Yes, that sample has a few errors in it, probably due to a recent API change. I tested the sample on linux (but it should work on windows without issues, don't have a windows machine right now to test) and it runs fine after fixing the errors:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <cstdio>
#include <CkSpider.h>
#include <CkStringArray.h>
#include <CkString.h>

void ChilkatSample(void);

int main() {
ChilkatSample();
return 0;
}


void ChilkatSample(void)
    {
    //  The Chilkat Spider component/library is free.
    CkSpider spider;

    CkStringArray seenDomains;
    CkStringArray seedUrls;

    seenDomains.put_Unique(true);
    seedUrls.put_Unique(true);

    //  You will need to change the start URL to something else...
    seedUrls.Append("http://www.google.ro/");

    //  Set outbound URL exclude patterns
    //  URLs matching any of these patterns will not be added to the
    //  collection of outbound links.
    spider.AddAvoidOutboundLinkPattern("*?id=*");
    spider.AddAvoidOutboundLinkPattern("*.mypages.*");
    spider.AddAvoidOutboundLinkPattern("*.personal.*");
    spider.AddAvoidOutboundLinkPattern("*.comcast.*");
    spider.AddAvoidOutboundLinkPattern("*.aol.*");
    spider.AddAvoidOutboundLinkPattern("*~*");

    //  Use a cache so we don't have to re-fetch URLs previously fetched.
    spider.put_CacheDir("/home/george/");
    spider.put_FetchFromCache(true);
    spider.put_UpdateCache(true);

    while (seedUrls.get_Count() > 0) {

        const char * url;
        url = seedUrls.pop();
        spider.Initialize(url);

        //  Spider 5 URLs of this domain.
        //  but first, save the base domain in seenDomains
        CkString domain;
        domain.setStringAnsi (url);
        //CkString s (url);
        spider.get_Domain(domain);
        seenDomains.Append(spider.getBaseDomain(domain));

        long i;
        bool success;
        for (i = 0; i <= 4; i++) {
            success = spider.CrawlNext();
            if (success != true) {
                break;
            }

            //  Display the URL we just crawled.
            printf("%s\n",spider.lastUrl());

            //  If the last URL was retrieved from cache,
            //  we won't wait.  Otherwise we'll wait 1 second
            //  before fetching the next URL.
            if (spider.get_LastFromCache() != true) {
                spider.SleepMs(1000);
            }

        }

        //  Add the outbound links to seedUrls, except
        //  for the domains we've already seen.
        for (i = 0; i <= spider.get_NumOutboundLinks() - 1; i++) {

            url = spider.getOutboundLink(i);

            domain = spider.getUrlDomain(url);
            const char * baseDomain;
            baseDomain = spider.getBaseDomain(domain);
            if (!seenDomains.Contains(baseDomain)) {
                seedUrls.Append(url);
            }

            //  Don't let our list of seedUrls grow too large.
            if (seedUrls.get_Count() > 1000) {
                break;
            }

        }

    }

    }
@modoran, thanks so much. I have a lot of reading to do for me to understand the codes.

Well it works on linux, but not on windows xp. Is there anything I should be doing before running it on windows?

I'm totally new to "network related codes", so any helpful pointers will be much appreciated. What books would be good to read?

Edit ~~ still not working on windows xp, but life needs to go on. out.
Last edited on
Topic archived. No new replies allowed.