Создал ATL Project, в него пытаюсь добавить простой ATL объект.
Назвал компонент Indexer, вижла создает соответсвующий интерфейс и класс
Однако в файле Indexer.h
автогенерируется куча кода скучей ошибок:
Не понимаю почему вижла не видит соответствующие переменные\классы, она же вроде как их сама сделала.
код в Index.h
// Indexer.h : Declaration of the CIndexer
#pragma once
#include "resource.h" // main symbols
#include "components_i.h"
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
#endif
using namespace ATL;
// CIndexer
class ATL_NO_VTABLE CIndexer :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CIndexer, &CLSID_Indexer>,
public IDispatchImpl<IIndexer, &IID_IIndexer, &LIBID_componentsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
CIndexer()
{
}
DECLARE_REGISTRY_RESOURCEID(106)
BEGIN_COM_MAP(CIndexer)
COM_INTERFACE_ENTRY(IIndexer)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
};
OBJECT_ENTRY_AUTO(__uuidof(Indexer), CIndexer)
У вас не определены GUIDы в Indexer.h
, что, собственно, и говорится в сообщениях об ошибке. Хотя нужно еще глянуть components_i.h
, но там явно тоже этого нет. Такие ляпы в автоматически сгенерированном коде совсем не редкость - стоит только чуть отойти от стандартных настроек визарда, и результат часто даже не компилируется.
Перенесите все макросы DEFINE_GUID
в stdafx.h
, и их же плюс #include <initguid.h>
поместите в stdafx.cpp
. Ну и на будущее имейте в виду, что сгенерированный код нужно отлаживать так же, как и свой.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь перенести проект с C++ на C#, однако в SystemMath C# отсутствует функция разложения на экспоненту и мантиссу (frexp в C++)
Я не понимаю, куда и что возвращает оператор returnВ функции main это говорит о завершении программы с кодом 0 (успешно), а что происходит в других...
Нужно чтоб счетчик состоял из 3 чисел, например 001, 002, 003 при переходе на 10 элемент было 010