Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Minnesproblem med komponent.

Postades av 2004-02-16 11:56:53 - Peter Eriksson, i forum komponenter, Tråden har 2 Kommentarer och lästs av 1262 personer

Jag har frågat om detta under rubriken c++ tidigare men det är kanske ett vb-problem så jag ställer frågan här också:

Jag håller på med att skriva en COM-komponent i C++ med hjälp av Visual Studio .NET 2003 och ATL.
Denna komponent innehåller tre olika klasser som är wrappers till motsvarande klasser
som finns i en VB-komponent.
VB-objektet skall skapas i en tråd som startas när C++-objektet skapas.
C++-klassen har sedan samma metoder och properties som VB-klassen som den bara skickar vidare.
Detta fungerar om det är enkel kod i VB-klassen men om någon metod i VB-klassen gör New på någon privat klass så kraschar det hela sedan hos klientprogrammet på grund av att minnet ej går att läsa. KLientprogrammet är skrivet i VB. Felet är att
minnet inte går att läsa.

Om jag struntar i tråden och skapar VB-objeket i C++-klassens konstruktor så funkar det hela bra.

Hoppas någon har en ide för det är viktigt att detta går att lösa.

mvh
Peter E


Svara

Sv: Minnesproblem med komponent.

Postades av 2004-02-16 14:16:56 - paul horsley

A quick question, when you start the new thread that you wrapper should run on , does any of the ( New ) methods you need to use have any parameters? I know you can't pass any parameters when initiating a new object via a separate new thread,. might be your problem is that somewhere down the line of your thread you initiate an object use the vb New key word and need to pass in some params...system.Threading does not allow that, just a thought. if it is so try to create the objects reuired and pass the parameters into the new objects as properties instead...

cheers Paul


Svara

Sv: Minnesproblem med komponent.

Postades av 2004-02-16 16:27:31 - Peter Eriksson

Den New som gör att allt kraschar är lokal inne i VB-metoden.
Här är dels koden som skapar tråden på C++-sidan:

CCustomerDataDs()
{
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

hThread = CreateThread(NULL, 0, ThreadProcCustomerDataDs, (LPVOID) &ptr3,
0, &threadID);
}


DWORD WINAPI ThreadProcCustomerDataDs(void* tparam)
{
_CustomerDataDsPtr *ptr;

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);

ptr = (_CustomerDataDsPtr *) tparam;
ptr->CreateInstance(__uuidof(CustomerDataDs));
ptr->AddRef();

MSG msg;
while (GetMessage(&msg, 0, 0, 0))
DispatchMessage(&msg);

CoUninitialize();

return 0;
}


samt en av metoderna som anropar en VB-metod:

STDMETHODIMP CCustomerDataDs::ChkCustomerData(BSTR* MMCard, SHORT* retChkCustomerData)
{
short rc = -1;

if (ptr3 != NULL)
rc = ptr3->ChkCustomerData(MMCard);

*retChkCustomerData = rc;
return S_OK;
}



Samt VB-metoden:

Public Function ChkCustomerData(MMCard As String) As Integer
Dim cLog As clsLog

On Error GoTo ErrorHandler

'Här kraschar det
Set cLog = New clsLog

cLog.FileName = "c:\test\logfile.txt"
cLog.Log Now & " ChkCustomerData 1"
ChkCustomerData = 30
Set cLog = Nothing
Exit Function
ErrorHandler:
ChkCustomerData = 300
End Function





Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
763
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies