Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > нужна помощь


Автор: devidblein 25.11.2009, 01:38
Господа, подскажите пожалуйста как к приложению написанному на VS2008 проект создан как консольное приложение на С++
К данному коду необходимо прикрутить форму, указанный ниже код напрочь отказывается работать когда выбираю windows form аррlication
может нада задать какие то опции при компиляции проекта???

Заранее благодарен за квалифицированный ответ.


// SMTP.cpp : Defines the entry point for the console application.
//
//#import "SimpleEmailClient.dll" no_namespace

#include "stdafx.h"
#include "SMTP.h"
#include <winsock.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// The one and only application object

//CWinApp theApp;

//using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
char* m_sServer="94.100.177.1";
char* m_sFrom="[email protected]";
char* m_sTo="[email protected]";
char* m_sText="11111111111111111";
char* Tex="\\ 11111111111111111'M''M'\r\n\r\n.\r\n";


char *MailMessage[] =
{
Serv,
Login,
Pass,
From,
To,
"DATA\r\n Mail to: Федя<[email protected]>\r\n From: Alex<[email protected]>\r\n Subject: key\r\n ",
Tex,
"QUIT\r\n",
NULL
};
int iLength = 0;
int iEnd = 0;
char sBuff[1024];
int iMsg = 0;
// char* message;
SOCKET s;
WSADATA Wsa;
SOCKADDR_IN sin;
WSAStartup(0x0101,&Wsa);
s = socket(AF_INET,SOCK_STREAM,0);
sin.sin_addr.S_un.S_addr= inet_addr(m_sServer);
sin.sin_family = AF_INET;
sin.sin_port = htons(25);

if(connect(s,(LPSOCKADDR)&sin,sizeof(sin)) == SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
return 1;
};

Sleep(500);
do
{

send(s,(LPSTR)MailMessage[iMsg],strlen(MailMessage[iMsg]),0);
//Sleep(1000);
iMsg++;
iLength = recv(s,(LPSTR)sBuff+iEnd, sizeof(sBuff)-iEnd,0);

iEnd += iLength;
sBuff[iEnd] = '\0';
// MessageBoxI(sBuff);
Sleep(150);
}while(MailMessage[iMsg+1]!=NULL);

closesocket(s);
WSACleanup();

// TODO: code your application's behavior here.
}

return nRetCode;
}

Автор: sQu1rr 25.11.2009, 01:49
Во первых используйте тег [ code=cpp ] [/code]
Во вторых вам нужно учить WinAPI, здесь вам не будут писать программу за вас, просто помогут. Иначе вам в другой раздел

Автор: siew 25.11.2009, 10:00
Ну у меня пока что возникает только один ответ: подключи необходимые библиотеки. Потому что консольное приложение не подключает многих библиотек. Там без поключения библиотек даже окно о сообщении не покажешь.

Автор: xvr 25.11.2009, 18:09
Зачем это AfxWinInit в консольном приложении?  smile 
Да и Managed C++ с MFC скорее всего не уживутся  smile (Я надеюсь, что вы в курсе, что 'windows form аррlication' - это .NET, т.е. C# или Managed C++)

Автор: devidblein 26.11.2009, 00:29
Что порекомендуете? 

Автор: xvr 26.11.2009, 12:25
Цитата(devidblein @ 26.11.2009,  00:29)
Что порекомендуете?

Для начала выкинуть AfxWinInit (и всякие упоминания о MFC из stdafx.h)
Во вторых определится на чем делать GUI. Если Windows Forms App. то логично напрашивается C#, но основную прогу придется перелопатить. Если брать Managed C++, то выглядить это хорошо не будет  smile 
Еще можно взять Qt или еще кого нибудь  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)