>
Похожие темы
Тема Автор
C# Как посчитать данные в датагридвью???
если к датагриду прикручен *.mdb файл с таблицами....то как можно в ядре пересчитать данные из этой таблицы и показать в гриде? если можно поконкретнее или код...
neytro
Ошибок нет, но при попытке сохранения выпадает ошибка компиляции. C#
private void button4_Click(object sender, EventArgs e) { //this.rSUBASEDataSet.rsubase.Reset(); //DataRow dr = new DataRow(); foreach (DataRow dr in this.rSUBASEDataSet.Tables.Rows) { dr.Delete(); } this.rsubaseTableAdapter.Update(this.rSUBASEDataSet.rsubase); ...
neytro
C# WPF передача динамически созданных объектов на событие
Добрый день! Значит ситуация следующая, есть элемент StackPanel в него добавляються динамически созданные обьекты к ним динамически создаеться контекстное меню, на элементы контекстного меню создаються события, каким образом можно передать динамически созданный обьект в StackPanel, на событие созданное на обьект контекстного меню?? Код создания нового обьекта:
RM2006
Собственная антивирусная система на C#
Привет! Я собираюсь писать собственную антивирусную систему с эвристическим анализом. Основная идея очень проста: антивирус предоставляет запущенному приложению (например вирусу) доступ к виртуальным файлам, с которыми работает, как с реальнымы. После этого антивирус показывает, что пытается сделать запущенное приложение. Я использовал BoxedApp SDK ( http://boxedapp.ru/ ) для эмуляции файловой...
Screamer
C# Проигрывание Flash-роликов без использования временных файлов
Я хочу сделать прогу, в которой будет Flash Player контрол, который будет проигрывать SWF с сервера (из URL). А Flash Player ActiveX сначала сохраняет SWF файл во временное хранилище чтобы загрузить его и проиграть, не так ли? В принципе, можно создать соответствующую ссылку, которая будет передана Flash Player ActiveX и затем удалить SWF файл после проигрывания. Но, конечно, при этом высокий...
Screamer
Вызов из другого класса (C# 2008)
<DIV id=post_message_297212>код C# public partial class Form1 : Form { public Form1() { InitializeComponent(); Top = 50; Left = 200; Size = new System.Drawing.Size(1250, 908); }
fvgk-2009
Помогите найти исходники на C#
Помогите, пожалуйста, отыскать исходники (рабочие!!!) или хотя бы алгоритмы для реализации тестов для проверки качества случайных и псевдослучайных последовательностей!
Natashka
C# Как отловить нажатие CTRL+Z?
Как отловить нажатие CTRL+Z?
Girevik

Показать сообщение отдельно
Старый 30.07.2009, 22:49  
Pauk
Новичок
 
Регистрация: 09.07.2009
Сообщений: 1
Pauk пока не определено
По умолчанию Нужна помощь с Marshal.GetObjectForIUnknown

В кратце есть COM+ сервер на C#. Есть библиотека типов. Объект сервера создается. Точнее не сам объект, а System.Runtime.Remoting.Proxies.__TransparentProxy , что впринципе не важно. Далее с сервера вызывается функция которая создает в сервере объект и ссылка на этот объект возвращается клиенту, после чего не понятно как получить объект этот на клиенте через ссылку.

object _group = Marshal.GetObjectForIUnknown((IntPtr)pUnk); — генерирует ошибку :



[The runtime has encountered a fatal error. The address of the error was at 0x79f82af6, on thread 0x6e4. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.]



Вот код клиентской части :



Цитата:
Type interfaceType = typeof(IOPCServer);

object[] interfaceAttributes = interfaceType.GetCustomAttributes(false);

object guidAttribute = Array.Find(interfaceAttributes, delegate(object l_Attributes) { return (l_Attributes is GuidAttribute); });

string sGuid = ((GuidAttribute)guidAttribute).Value;



string _progIdT = "BEMN.OPC_SERVER";

string filter = String.Format("{0}\Clsid", _progIdT);

RegistryKey key = Registry.ClassesRoot.OpenSubKey(filter, false);

string clsid = key.GetValue(String.Empty).ToString();



Guid CLSID_MyClass = new Guid(clsid);

Guid IID_MyInterface = new Guid(sGuid);



IntPtr pTB = new IntPtr();

IntPtr pPD = new IntPtr();

int hServer = -1;

int pRUR = -1;

Guid gg = new Guid();

object pUnk = new object();



try

{

object classObj = BEMN.COM.Activator.Activator.CreateInstance(IID_My Interface,

CLSID_MyClass, CLSCTX.CLSCTX_ALL, "haritonov");



IOPCServer _OPC_SERVER = (classObj as IOPCServer);

_OPC_SERVER.AddGroup("01", 1, 1, 1, pTB, pPD, 1, out hServer, out pRUR, ref gg, out pUnk);



object _group = Marshal.GetObjectForIUnknown((IntPtr)pUnk); - Тут ошибка.



}

catch (Exception e)

{

Console.WriteLine(e.ToString());

}






З.Ы. Сервер загружается в dllhost. Т.е. не в адресном пространстве клиента.



Может кто то может подсказать?
Pauk вне форума  
Ads
 

Текущее время: 07:57. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru