-4

私がやろうとしているのは、プログラムを終了するときに電子メールを送信することです。関数を使用atexit();してこれを行いますが...正しく機能していません。

#include <windows.h>
#include <iostream>

void SendEmail()
{
    //lot of code here
}

void Print()
{
    std::cout << "Bye!";
    system("pause");
}

void Terminate()
{
    SendEmail(blahblah); // Doesn't work
    Print(); // Works
}

int main()
{
    atexit(Terminate);

    while (true) Sleep(1);
    return 0;
}

SendEmail();関数は時間がかかりすぎて何もしませんか? サーバーの応答も出力しません ( で使用すると正常に動作しますmain();) 。

4

1 に答える 1

3

を実行する前に、他のリソースがシャットダウンされていることを知りませんatexit。これらは、 を正常に実行するために重要だった可能性がありSendMailます。

于 2015-10-15T15:34:02.677 に答える