COM vupros

20 отговора 831 прегледа
#1

COM vupros

Imam edin vupros otnosno COM programiraneto...taka zashto ne moga da izpolzvam COM obekt (ne Automation ili ActiveX) ot Visual Basic, COM componenta e vutreshno procesen DLL napraven na vc++ 6 chrez MFC makrosite i CCmdTarget.
nali COM e dvoichen standart i COM componentite bi trqbvalo da moje da se izpolzvat ot vsichki ezici

Отговор
в отговор на neoX #2

Re: COM vupros

amiiii moje da ne raboti, zashtoto ne ti e standarten CPU-to. vij v dokumentaciqta na [линк] dali CPU-to ti e binary compatible sys COM.

Отговор
в отговор на EmoVla #3

Re: COM vupros

ami ne mislq che e tam problema shtoto edva li ne podurja duron (morgan), a i nqmam nikvi problemi s vc++ v smisul che tam si se suzdava obekta i nqmam problemi da polucha nqkoi ot interfeisite mu...no prosto probvah pod VB i neshto ne stana rabotata greshkata mi dava pri suzdavaneto na obekta t.e. pri
"set myobj=new MyMath"...kato predi tova sum deklariral myobj kato MyMath.

Отговор
в отговор на EmoVla #4

Re: COM vupros

Interface-a ti trqbva da e Automation compatible za da se polzva ot VB. vij [oleautomation] attribute-a v MSDN


"vij v dokumentaciqta na [линк] dali CPU-to ti e binary compatible sys COM"!!! Tva trqbva da se se sloji kato vic na denq nqkyde....

Отговор
в отговор на lvo #5

Re: COM vupros

ok za automation sum suglasen obache prochetoh neshto v MSDN-a koeto na kratko tvurdi che vseki istinski COM component moje da se izpolzva ot drug ezik. statiqta e "Dr. GUI on Components, COM, and ATL" v MSDN July 2001 i e daden primeren COM (bez kakvato i da e podrujka na automation)i esestveno kak moje da se polzva ot VB i JAVA.

Отговор
в отговор на neoX #6

Re: COM vupros

brat'4et kvi makrosi be kvo 4udo be?
kyf dvoi4en standard !!!!!!!!! - (BINARY INTERFACE) muahahahahahahahahah
ia sedni po4eti "Essential COM" malko pyrvo
imash li Entry Point, Register, Unregister, ?????
COM obekti po pravilo se praviat s ATL !!!
stiga 4ete "programirane s MFC" !!!
zemi nau4i i IDL spravka "Essential IDL"

maliiiiiiiiii kvi programisti imalo

Отговор
в отговор на crazy #7

Re: COM vupros

ako mi kajesh i ot kude da se snabdq s knijkata nqma da e losho...a inache ne e "programirane s MFC" a i prosto se interesuvah dali nqkoi se e sbluskval s toq problem

Отговор
в отговор на neoX #8

Re: COM vupros

Здравей neoX,

имам електронен вариант на "Inside ATL" (между другото доста е добра). Кажи e-mail на който да ти я пратя.

Поздрави,
Николай

Ако пък толкова те дразни пусни го по пързалката...
Отговор
в отговор на nikie #9

Re: COM vupros

10x man...ama i az q imam... MS Press - Inside ATL na George Shepherd i Brad King nali - inache e hubavo nqkoi da kaje ako znae link kum: Essential COM ili Advanced Windows Programming, Inside COM ,ActiveX Controls Inside Out ,Inside OLE, 2nd Edition ,Essential IDL: Interface Design for COM,Mfc Internals : Inside the Microsoft Foundation Class Architecture i nqkoi drugi....ama za sujalenie ne do sega ne sum gi nameril v nikoi tuinarechen ebookZ ;((

Отговор
в отговор на neoX #10

Re: COM vupros

мхм, я пробвай с CreateObject /или нещо такова, погледни help-а на VB-тo за синтаксис и т.н./
set-a май върви за OCX-и?
ако нестава - напиши и каква по-точно грешка ти дава...

--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на e-de #11

Re: COM vupros

greshata e:
Run-time error '429': ActiveX component can't create object
kato pri Set myobj = CreateObject(MyMath) dava sushtata greshka, ako MyMath e v kavichki dava Automation error.....

za info:inache MyMath e Com component podoben na Spaceship napraven v "programirane s vc++ 6"

Отговор
в отговор на neoX #12

Re: COM vupros

zabelqzah che Object Browser na vb kato izbera biblioteka s MyMath mi pokazva classes: MyMath,no nqma nikakvi funkcii (Members of MayMath)

Отговор
в отговор на neoX #13

Re: COM vupros

Ти погледна ли к'во пише за CreateObject в help-а на VB-то????
Тука е примерче с Excel - форма, две копчета, едното прави Excel-а да отвори файл /и самия себеси, естествено/, другото затваря тоя Excel:


Option Explicit
Dim eObj As Variant
'Те това ти е обжект променливата

Private Sub Command1_Click()

Dim FileName As String
'Името на xls-а дето ш го отваряш

FileName = "d:\temp\test1.xls"
'напиши свястно име - иначе - бум...

Set eObj = CreateObject("Excel.Application")

'Excel.Application - regedit.exe->HKEY_CLASSES_ROOT\Excel.Application,
'направи същото и за твоето пройзведениице :-)

eObj.Visible = True
Call eObj.Workbooks.Open(FileName)
End Sub

Private Sub Command2_Click()
eObj.Quit
'Затваряш и фрее - огледай си нещото дали така ще стане
End Sub


--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на e-de #14

Re: COM vupros

Private myobj As Spaceship

Private Sub Command1_Click()

Set myobj = CreateObject("MyMath")
i=myobj.square(9) 'tuk gurmi qko ....insturkciq 0x000000 chete 0x00000 i
'zatvarq vb!!
End Sub

a i interesno kato go debugvam i bi trqbvalo kato posochesh s mishkata vurhu myobj sled kato mine Set..... da mi pokaje myobj s koi obekt e svurzan ili Nothing ta kato go posocha grumva pak s greshka podobna na gornata samo deto purviq adres e nqkuv sushtestuvash 0x328477ff
..abe ima i neshto drugo

Отговор
в отговор на crazy #15

Re: COM vupros

Tova e malko ekstremno mnenie, no preporakata e dobra. V ATL si e istinata.
Ako obache iskash da polzvash sashtestvuvashtia si kod s MFC vse pak shte triabva da polzvash MFC-shkite klasove. Az sam polzval malko MFC bibilotekite za COM za kapsulirane na sashtestvuvasht kod. Do kolkoto si spomniam MFC-to praveshe ActiveX-ove a ne COM componenti. Ako ne gresha, to tova e problema.

po-dobre ujasen krai otkolkoto ujas bez krai
Отговор
в отговор на neoX #16

Re: COM vupros

"MyMath" е името на библиотеката, трябва да е нещо от вида "MyMath.MyMath"!

мога да ти покажа как се ползва COM Server от VB, обаче хич неочаквай да ти дебъгвам кода на Ц /нали на такова си го писал това нещо?/ - т.е. ако нещо ти е калпав кода нама начин аз да ти го посоча. грешките които описваш само казват че има проблем м/у VB-то и твоето произведение, нищо друго!

това, с мишката над/след променливата е за ActiveX CONTROLS, не очаквай такива неща за сървър!!!!

--------------------------------------
Започва Път от моят праг...
Отговор
в отговор на neoX #17

Re: COM vupros

Ami da ti kaza spored moia skromen opit naj-udachnnia variant se okaza MFC za systestvuashtia kod i ATL za COM interfaces razbira se ste se nalozi da napravish malko chanch. Dokolkoto pomnia za vseki class ima samo 1 IUnknown i toi se dyrzi ot CmdTarget a sledtova QueryInterface vrusta ATL obecta. Obache ako na nego mu piskat IUnknown triabav da vyrne tozi na trgeta.
Systo triabva da si generirash sam IDL vyv prazen proect i sled tova da go kopirash obache ne big deal i da si opravish QueryInterface da vrysta viarnoto nesto.
Inache ako iskash samo MFC - ste triabva da simulirash dualen interface po nachina po-koito go praviat v ATL.
Edinstvenia nachin VB da razbere za tvoia interface e kato go procete ot TypeLib.
Taka che pak ste triabva da si ia generirash.
Imashe oste gluposti na tema threading ama ako si napravil MFC komponentite veche naj dobre procheti HELP.
Aide sys zdrave.

Отговор
в отговор на neoX #18

Re: COM vupros

Ami shtom pishe, znachi trjabwa da raboti :-)

Отговор
в отговор на neoX #19

Re: COM vupros

abe napravih go toq COM s ATL i estestveno vsichko bachka ;)))......a inache s MFC-to mislq che v "odl" file-a trqbva da napisha kakvi interfeisi ima ama vse mi dava nqkvi greshki ;(((

Отговор
в отговор на neoX #20

Re: COM vupros

abe momko, ti si prirodno typ be.....

Отговор