Anonymní profil Pawl – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Pawl – Programujte.comAnonymní profil Pawl – Programujte.com

 

Příspěvky odeslané z IP adresy 85.207.218.–

C / C++ › Windows CE OLE/COM objekt
24. 6. 2010   #130635

Ahoj,

Ahoj mám panelový systém běžící pod Windows CE, kde je soft. PLC a vizualizace, výrobce pro komunikaci mezi vizualizací a PLC používá objekt "MicroInnovation.CoDeSys.TagServer.1", jakým způsobem lze získat seznam vygenerovat hlavičkový soubor, když je instalovaný pouze v zařízení. Zkoušel jsem jenom jednoduché připojení

HRESULT reshr;

CLSID clsid;

reshr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
if ( FAILED( reshr ) )
{
AfxMessageBox(L"CoInitializeEx initialization failed");
return;
}


reshr = CLSIDFromProgID(L"MicroInnovation.CoDeSys.TagServer.1",&clsid);

if (FAILED( reshr ))
{
AfxMessageBox(L"Objekt nenalezen!");
return;
}

IDispatch *excelApp;

reshr = CoCreateInstance(clsid, 0, CLSCTX_LOCAL_SERVER, IID_IDispatch, reinterpret_cast<void **>(&excelApp));
if (FAILED( reshr ))
{
CString hlaska;
GetErrorFromHresult(reshr,hlaska);
hlaska.Insert(0,_T("Chyba v ::CoCreateInstance\n"));
AfxMessageBox(hlaska);
return;
}

Při CoCreateInstance se mě dostává hlášení :
reshr -2147467262 {E_NOINTERFACE} HRESULT
"Chyba v ::CoCreateInstance No such interface supported"

Ale hlavu si z toho nedělám hlásí mě i u ostatních COM objektů. :smile11: Tento kód jsem našel někde na netu. Ale ani tak by to neřešilo můj prvotní problém. Druhá varianta je kontaktovat výrobce, aby mě poskytl nějaký knihovny, ale nevím nějak v to nedoufám.

pawl
.NET › COM Array
19. 5. 2010   #129107

To liborb :

Když jsem se nechal V C++ automaticky vytvořit knihovnu dostal jsem toto:
BOOL ReadDirectResults(long * ReadCode, SAFEARRAY * * BufferImg, SAFEARRAY * * VarResults) { ... }

dokumentace k těmto třídám je mizerná.
--
Podobná funkce která obsahuje ARRAY je ukazana v příkladu psaný ve VB6



'Declare image array for buffered images
Private imageArray() As Byte
...
imgWidth = 400
imgHeight = 330
ReDim imageArray(imgWidth * imgHeight
...
'Read buffered image (return true if read)
With objDevs(DeviceIndex)
Result = .ReadImage(imageArray, ImageBank, imgWidth, imgHeight, 0)
End With


definice v C# to funguje zvlašteně (možná je to v pořátku)
...

Array dataa = new byte[200];
dev.ReadImage(ref data, banka, ref x, ref y, ref dummy);


podle X a Y se mě změní velikost pole. Ale chybu to nevypíše, sice všechny bajty mají hodnotu 0, ale mlže být jiný problém. V C++ jsem to ještě nezkoušel.



BOOL ReadImage(SAFEARRAY ** BufferImg, long NumImage, long * SizeX, long * SizeY, long * TypeImage)

kde buffer je definován stejně jako ve funkci ReadDirectResults.

Pawl
.NET › COM Array
18. 5. 2010   #129072

Ahoj,

Komponenta je COM je definována jako :

...

[DispId(1610809425)]
bool ReadDirectResults(ref int ReadCode, ref Array BufferImg, ref Array VarResults);...
...



moje implementace

	    

Array data = new byte[200];
Array dataa = new byte[200];
int banka = 2;
int x = dev.DeviceCFG.Size_X;
int y = dev.DeviceCFG.Size_Y;
dev.ReadDirectResults(ref banka,ref data,ref dataa);


An unhandled except, ion of type 'System.Runtime.InteropServices.SafeArrayTypeMismatchException' occurred in
Additional information: Specified array was not of the expected type.

Četl jsem něco o Marshalingu, o SAFERARRY ale nevim jak to definovat v c#.

Pavel

Pawl
C / C++ › JPGE na WIN CE5
3. 5. 2010   #128242

Ahoj, jakým způsobem zobrazit JPGE před MFC na Windows CE5. Zkoušel jsem
CxImage - na platformě STANDARDSDK_500 se mě nedří sestavit.

Zkoiušl jsem také ImaginigFactory (ale v systému chybí imaginig.dll) chtěl jsem zkusit zobrazení přes knihovnu
imgdecmp.dll) ale ani ta není v systmému. Jaké jsou další možnosti.

Pawl
C / C++ › Win CE - síťová tiskárna
31. 3. 2010   #126000


Pod CE nejde požít PD_RETURNDC místo PrintDlg jsem dal PageSetupDlg a funguje to, akorát problém je že okno je moc velké. Takže to budu muset volat bez zobrazení a do registru nahrát "výchozí nastavení tiskárny"

pawl
C / C++ › Win CE - síťová tiskárna
30. 3. 2010   #125955

To liborb :
Já jsem někde četl, že to nezobrazí dialog tak jsem to okomentoval, ale podle toho nazvu jako to teď čtu je logický že to asi nic nevrací ... zkusím :-)

pawl
C / C++ › Win CE - síťová tiskárna
30. 3. 2010   #125951

To liborb :

Zkoušel jsem něco takového co jsem našel na netu, ale nic, ani v simulatoru ani na realnem panelu to nefunguje



HDC GetPrinterDC(HWND wnd)
{
PRINTDLG pdlg;

// Initialize the PRINTDLG structure.
memset( &pdlg, 0, sizeof( PRINTDLG ) );
pdlg.cbStruct = sizeof( PRINTDLG );
pdlg.hwndOwner = wnd;

// Set the flag to return printer DC.
//pdlg.Flags = PD_RETURNDEFAULT | PD_RETURNDC;

// Invoke the printer dialog box.
::SetLastError(0);
PrintDlg( &pdlg );
// hDC member of the PRINTDLG structure contains
// the printer DC.
int le = GetLastError();
if (le != 0) {
CString str;
str.Format(_T("Nastala chyba %ld"),le);
AfxMessageBox(str);
}
return pdlg.hdc;
}


void CMFC_printADlg::OnBnClickedButton1()
{
if ( GetPrinterDC(this->m_hWnd) == 0)
AfxMessageBox(_T("Nulový návrat"));
}

Chybu (LastError) nevarci, ale hDc je nulové.

Pawl
C / C++ › MFC - share DLL
26. 2. 2010   #124540

Ahoj,

Proč nechce žádná aplikace se sdílen MFC knihovnama fungovat v jiném systém než byla sestavena.
Samozřejmě, že jsem k této aplikaci přihrál všechny potřebné knihovny

mfc80d.dll
msvcp80d.dll
msvcr80d.dll
do složky Win32 msjava.dll (který byl také vyžadován) podle Dependency Walker.

Ten vypisuje hlášení :

Error: The Side-by-Side configuration information for 

"c:\bin\vmdata\vnc_tmp\__1\OPC_240210.EXE" contains errors. Sputn tto aplikace se nezdailo, protoe konfigurace aplikace nen sprvn. Tyto pote lze pravdpodobn vyeit opakovanou instalac aplikace (14001).
(toto varování vypisuje Dependency Walker i v systému kde se aplikace sestavovala)

Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.



Kde může být problém. Jenom dodám, že sestavit program staticky nelze.

Pawl
C / C++ › UNICODE &lt;-&gt; MULTIBYTE…
8. 1. 2010   #122441

První část obrázku je znázorněny ANSI a v druhé části UNiCODE.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý