Помогите новичку :)
От: Alex_Sudakov Россия  
Дата: 10.02.05 14:49
Оценка:
После VS6 пересел на VS.Net, и не понимаю что происходит — половина типов не определяется... До смешного доходит The type or namespace name 'REFCLSID' could not be found. Я понимаю что идиотский вопрос, но подскажите где галочку поставить...
Помогите новичку :)
От: Аноним  
Дата: 10.02.05 15:21
Оценка:
Не понятно где у Вас типы не определяются.
Для начала создайте пустой проект, добавьте References на все namespace которые планируете использовать.

Но, главное, пользуйтесь Object Browser (View меню)! И, конечно, документацией .NET Framework SDK.
--
VBSTREETS, Editor-in-Chief
http://blogs.gotdotnet.ru/personal/gaidar/


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Помогите новичку :)
От: Alex_Sudakov Россия  
Дата: 10.02.05 15:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не понятно где у Вас типы не определяются.

А>Для начала создайте пустой проект, добавьте References на все namespace которые планируете использовать.

А>Но, главное, пользуйтесь Object Browser (View меню)! И, конечно, документацией .NET Framework SDK.


А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение


Я просто пример приведу.

using System;
using stdole;
using System.Runtime.InteropServices;

namespace WindowsApplication1
{
    public class DocumClass1
    {    [DllImport("ole32.dll")]
        static extern int CoCreateInstance(
                REFCLSIDВот здесь вылетает ошибка rclsid,
                LPUNKNOWN pUnkOuter,
                DWORD dwClsContext,
                REFIID riid,
                LPVOID * ppv
                );

В Refernses в качестве эксперемента добавляю вообще ВСЕ что возможно...
Re[2]: Помогите новичку :)
От: vcmboot  
Дата: 10.02.05 16:16
Оценка:
Здравствуйте, Alex_Sudakov, Вы писали:

A_S> { [DllImport("ole32.dll")]

A_S> static extern int CoCreateInstance(
A_S> REFCLSIDВот здесь вылетает ошибка rclsid,
A_S> LPUNKNOWN pUnkOuter,
A_S> DWORD dwClsContext,
A_S> REFIID riid,
A_S> LPVOID * ppv
A_S> );

В программах на C#/.Net нужды использовать CoCreateInstance и подобные/сопустствующие ему функции.
Соответствующие вызовы среда .Net сделает автоматически.
Необходимо просто добавить в References, вкладка COM, тот COM-компонент, который Вы желаете у себя использовать в программе. Автоматически создастся так называемый Interop — вспомогательная либа для компилятора/рантайма .Net. Далее в программе
using НазваниеInteropЛибы;

...........
ТипИзCOM var = new ТипИзСOM();
var.SomeFunction();
...........


В конце никаких free/release/CoUninitialize делать не надо. Среда .Net всё сделает сама.
Re[3]: Помогите новичку :)
От: _FRED_ Черногория
Дата: 10.02.05 16:53
Оценка:
Здравствуйте, vcmboot, Вы писали:
V>В программах на C#/.Net нужды использовать CoCreateInstance и подобные/сопустствующие ему функции.
V>Соответствующие вызовы среда .Net сделает автоматически.
V>Необходимо просто добавить в References, вкладка COM, тот COM-компонент, который Вы желаете у себя использовать в программе. Автоматически создастся так называемый Interop — вспомогательная либа для компилятора/рантайма .Net. Далее в программе
V>
V>using НазваниеInteropЛибы;
V>...........
V>ТипИзCOM var = new ТипИзСOM();
V>var.SomeFunction();
V>...........
V>


V>В конце никаких free/release/CoUninitialize делать не надо. Среда .Net всё сделает сама.


Кроме Marshal.ReleaseComObject(...)?
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.