способ подключения
От: nusik1990 Азербайджан  
Дата: 24.11.10 19:22
Оценка:
Здравствуйте.
Yеобходимо написать консольное приложение которое будет использовать ActiveX.
Вопрос такой что лучше
создание activeX dll и использование его функций в консольном приложении или
только консоль с embedded activeX функциями
какие нюансы, и стоит ли вообще на это обращать внимания.
Заранее благодарен.
Re: способ подключения
От: Clickmaker Россия http://relaxander.webest.net/
Дата: 25.11.10 09:09
Оценка:
не понятен вопрос..
почему именно activex? предполагается, что его функции будут кем-то еще использоваться?
Re[2]: способ подключения
От: nusik1990 Азербайджан  
Дата: 29.11.10 00:58
Оценка:
Здравствуйте, Clickmaker, Вы писали:

C>не понятен вопрос..

C>почему именно activex? предполагается, что его функции будут кем-то еще использоваться?
Да, предполагается что будут пользоваться через VB, VBSript, perl, а в данный момент С++.
1.Создал MFC ActiveX Control (насколько я понял существует вариант через ATL, какая разница между ними???)
Мне нужно использовать этот контрол в консольном приложении. он должен быть невизуальным, в библиотеке реализовал тестовую функцию — int GetRandom()

2.Создал консольное приложение с библиотекой MFC(попытался совсем "чистое" без MFC создать,ничего не получилосьб исправлял одну ошибку , появлялась другая).
Записал туда такой код:

if ( FAILED( CoInitialize(NULL) ))
{
cerr << _T("Fatal Error: OLE initialization failed") << endl;
return 1;
}

HRESULT hr;
_DPrintPrefX* pIPP; // _DPrintPrefX — интерфейс методов в моей библиотеке


const CLSID BASED_CODE CLSID_PrintPrefX = { 0x11638B8D, 0xAA62, 0x4E63, { 0xA4, 0xF9, 0xC2, 0xFB, 0x3A, 0x41, 0x7C, 0x13 } };
const IID BASED_CODE IID_DPrintPrefX = { 0xB80E81AB, 0xE83, 0x4570, { 0xB1, 0x3F, 0x15, 0xCA, 0x16, 0x90, 0xB8, 0xC0 } };
const IID BASED_CODE IID_DPrintPrefXEvents ={ 0x3398E5AF, 0x86E9, 0x48F1, { 0x8F, 0xAC, 0x3C, 0xD, 0x41, 0xCC, 0xAD, 0x61 } };
const LIBID BASED_CODE LIBID_PrintPrefXLib= {0x108DA443,0x7B41,0x4C34,0xBC,0xB6,0x0B,0x93,0x52,0x7B,0x9F,0xAA};



hr=CoCreateInstance(CLSID_PrintPrefX,NULL,CLSCTX_INPROC_SERVER, IID_DPrintPrefX,(void**) &pIPP); // hr возвращает S_OK;
if (SUCCEEDED(hr))
{
int r = pIPP->GetRandom(); //эта функция описана в библиотеке, но компилятор говорит мол не объявлена такая функция
cout<<"Success\n";
}

Как объявить интерфейс _DPrintPrefX в консольном проекте, чтобы функцию GetRandom() можно было использовать?
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.