Форум программистов, компьютерный форум CyberForum.ru

OLE Automation - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Скрытие Dll http://www.cyberforum.ru/cpp-beginners/thread455226.html
Здравствуйте! Мне нужно скрыть Длл! Защита игры палит это длл и надо сделать Обход (скрытие) Прошу помоч!
C++ Функция для вставки элемента в массив #include <iostream> #include <stdio.h> #include <malloc.h> using namespace std; void insert(int *elem, int index,int *ptr,int *n) { for (int j=*n-1; j>=index; j--) ptr=ptr; *n++; http://www.cyberforum.ru/cpp-beginners/thread455221.html
Алгоритм Форда - Беллмана C++
Помогите пожалуйста понять что не так у меня. ограничение времени на тест: 1 сек. ограничение памяти на тест: 32768 KB. ввод: standard вывод: standard Дан взвешенный ориентированный граф из N вершин и M дуг. В графе могут быть петли и/или дуги отрицательного веса. Известно, что нет циклов отрицательного веса. Требуется найти расстояние от первой вершины до всех остальных. Между любой парой...
Не получается передать массив в функцию. C++
#include <iostream> #define n 20 #define m 30 using namespace std; void switcher (int** arr, int a, int b); int main() { int arr;
C++ Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени http://www.cyberforum.ru/cpp-beginners/thread455205.html
Добрый день, у меня такой вопрос: Допустим есть функция перебирающая большой текстовый файл и например подсчитывающая количество пробелов, или например заменяющая одни символы другими. Как можно во время работы данной функции отслеживать (записывать в переменную и выводить на экран) в реальном времени количество перебранных символов в единицу времени (за 1 сек, 5 сек, ...)? Т.е. добиться того,...
C++ Просканировать строку, и вернуть слово, если ASCII код каждой буквы этого слова четный написать функцию которая сканирует строку и возвращает слово если ASCII код каждой буквы этого слова четный.Пользоваться арифмитическими операциями нельзя. Напишите пожалуйста если кто знает. Можно приблизительно. Код в чистом СИ Ps ходят слухи что для решения этой задачи нужно использывать побитовые операции. Спасибо:) подробнее

Показать сообщение отдельно
mister pOO
1 / 1 / 0
Регистрация: 26.11.2011
Сообщений: 33
29.02.2012, 21:44     OLE Automation
листинг
C++
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
#include "windows.h"
#include <iostream>
#include "ole2.h"
#include <stdio.h>
 
 
HRESULT AutoWrap(int autoType, VARIANT *pvResult, IDispatch *pDisp, LPOLESTR ptName, int cArgs...) {
    // Begin variable-argument list...
    va_list marker;
    va_start(marker, cArgs);
 
    if(!pDisp) {
        MessageBox(NULL, "NULL IDispatch passed to AutoWrap()", "Error", 0x10010);
        _exit(0);
    }
 
    // Variables used...
    DISPPARAMS dp = { NULL, NULL, 0, 0 };
    DISPID dispidNamed = DISPID_PROPERTYPUT;
    DISPID dispID;
    HRESULT hr;
    char buf[200];
    char szName[200];
 
 
    // Convert down to ANSI
    WideCharToMultiByte(CP_ACP, 0, ptName, -1, szName, 256, NULL, NULL);
 
    // Get DISPID for name passed...
    hr = pDisp->GetIDsOfNames(IID_NULL, &ptName, 1, LOCALE_USER_DEFAULT, &dispID);
    if(FAILED(hr)) {
        sprintf(buf, "IDispatch::GetIDsOfNames(\"%s\") failed w/err 0x%08lx", szName, hr);
        MessageBox(NULL, buf, "AutoWrap()", 0x10010);
        _exit(0);
        return hr;
    }
 
    // Allocate memory for arguments...
    VARIANT *pArgs = new VARIANT[cArgs+1];
    // Extract arguments...
    for(int i=0; i<cArgs; i++) {
        pArgs[i] = va_arg(marker, VARIANT);
    }
 
    // Build DISPPARAMS
    dp.cArgs = cArgs;
    dp.rgvarg = pArgs;
 
    // Handle special-case for property-puts!
    if(autoType & DISPATCH_PROPERTYPUT) {
        dp.cNamedArgs = 1;
        dp.rgdispidNamedArgs = &dispidNamed;
    }
 
    // Make the call!
    hr = pDisp->Invoke(dispID, IID_NULL, LOCALE_SYSTEM_DEFAULT, autoType, &dp, pvResult, NULL, NULL);
    if(FAILED(hr)) {
        sprintf(buf, "IDispatch::Invoke(\"%s\"=%08lx) failed w/err 0x%08lx", szName, dispID, hr);
        MessageBox(NULL, buf, "AutoWrap()", 0x10010);
        _exit(0);
        return hr;
    }
    // End variable-argument section...
    va_end(marker);
 
    delete [] pArgs;
 
    return hr;
}
 
 
int main()
{
    std::cout  <<  "Initializing  COM"  <<std::endl;
    if  (  FAILED(  CoInitialize(  NULL  )))
    {
        std::cout << "Unable to initialize COM" << std::endl;
        return 0 ;
    }
    CLSID clsid;
HRESULT hr = ::CLSIDFromProgID( L"Excel.Application", &clsid );
 
if ( FAILED( hr ))
{
    std::cout << "Unable to get CLSID " << std::endl;
    return 0;
}
int i;
int j;
VARIANT a;
//a=5;
 
return 0;
 
}
// excell.cpp : Defines the entry point for the console application.
//
компиль ругается
obj\Debug\main.o||In function `Z8AutoWrapiP10tagVARIANTP9IDispatchPwiz':|
\Documents\codeblocks\mycom\main.cpp|30|undefined reference to `GUID_NULL'|
\Documents\codeblocks\mycom\main.cpp|56|undefined reference to `GUID_NULL'|
Не могу понять в чем ошибка? Функция AutoWrap взята с сайта майкрософта

Добавлено через 5 часов 9 минут
Решил с помощью
C++
1
const GUID IID_NULL = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } };
появились другие ошибки
\Documents\codeblocks\mycom\main.cpp||In function 'int main()':|
\Documents\codeblocks\mycom\main.cpp|103|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|111|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|120|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|152|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|165|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|172|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|183|warning: deprecated conversion from string constant to 'WCHAR*'|
\Documents\codeblocks\mycom\main.cpp|187|warning: deprecated conversion from string constant to 'WCHAR*'|
obj\Debug\main.o||In function `main':|
\Documents\codeblocks\mycom\main.cpp|91|undefined reference to `IID_IDispatch'|
\Documents\codeblocks\mycom\main.cpp|110|undefined reference to `VariantInit@4'|
\Documents\codeblocks\mycom\main.cpp|119|undefined reference to `VariantInit@4'|
\Documents\codeblocks\mycom\main.cpp|131|undefined reference to `SafeArrayCreate@12'|
\Documents\codeblocks\mycom\main.cpp|143|undefined reference to `SafeArrayPutElement@12'|
\Documents\codeblocks\mycom\main.cpp|151|undefined reference to `VariantInit@4'|
\Documents\codeblocks\mycom\main.cpp|161|undefined reference to `SysAllocString@4'|
\Documents\codeblocks\mycom\main.cpp|164|undefined reference to `VariantInit@4'|
\Documents\codeblocks\mycom\main.cpp|166|undefined reference to `VariantClear@4'|
\Documents\codeblocks\mycom\main.cpp|195|undefined reference to `VariantClear@4'|
||=== Сборка закончена: 10 errors, 8 warnings (0 minutes, 1 seconds) ===|
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru