{"id":4010,"date":"2021-03-16T12:13:37","date_gmt":"2021-03-16T12:13:37","guid":{"rendered":"http:\/\/www.colorwave.it\/blog\/?p=4010"},"modified":"2021-04-08T15:13:38","modified_gmt":"2021-04-08T15:13:38","slug":"ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri","status":"publish","type":"post","link":"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/","title":{"rendered":"Ezechiele &#8211; le assembly di connessione con le dll di Colibri"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4010\" class=\"elementor elementor-4010\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7011b41 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7011b41\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dce36dc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dce36dc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4ca507f\" data-id=\"4ca507f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b613804 elementor-widget elementor-widget-heading\" data-id=\"b613804\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CLB_Ezechiele_net<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-464e321 elementor-widget elementor-widget-text-editor\" data-id=\"464e321\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><em>CLB_Ezechiele_net<\/em>.dll\u00a0 \u00e8 un assembly contenente le funzioni e classi di interfaccia fra le dll native di Colibri e l&#8217;applicativo Ezechiele di Bottinelli.<\/p><p>Fra le classi della libreria una in particolare, la <em><span style=\"color: #008000;\">Clb<\/span><\/em><strong>, <\/strong>ha il compito di comunicare le richieste alla <span style=\"color: #008000;\"><em>CLB_Ezechiele.dll<\/em><\/span>, la dll nativa che ha la funzione di parser\u00a0 dei comandi ricevuti.<\/p><p>In questo articolo descriveremo le singole classe e le modalit\u00e0 d&#8217;uso delle stesse.<\/p><p>Prima di cominciare forniamo alcuni concetti base usati nello sviluppo del software e le modalit\u00e0 di compilazione e configurazione del progetto\u00a0 <em>CLB_Ezechiele_net e <\/em>degli eventuali futuri assembly prodotti.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f2290a5\" data-id=\"f2290a5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-05c7451 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-global elementor-global-4139 elementor-widget-table-of-contents\" data-id=\"05c7451\" data-element_type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t<h4 class=\"elementor-toc__header-title\">\n\t\t\t\tTable of Contents\t\t\t<\/h4>\n\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__05c7451\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__05c7451\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t<div id=\"elementor-toc__05c7451\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67ef647 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"67ef647\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-f9e96ce\" data-id=\"f9e96ce\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7b6249c elementor-widget elementor-widget-text-editor\" data-id=\"7b6249c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Modello di interfacciamento<\/h3><p>Il paradigma di comunicazione fra Colibri ed Ezechiele consiste nell&#8217;insieme di definizioni di seguito descritte:<\/p><h4><span style=\"color: #008000;\">Interfaccia<\/span><\/h4><p>L&#8217;interfaccia fra le funzionalit\u00e0 di Colibri ed Ezechiele \u00e8 fornita attraverso la classe <em><span style=\"color: #008000;\">Clb, che<\/span><\/em><em>\u00a0<\/em>contiene un insieme di 7 metodi,\u00a0 attraverso i quali \u00e8 costruito tutto il protocollo di comunicazione fra Colibr\u00ec ed Ezechiele.<\/p><p>Alcuni dei metodi esposti da <em><span style=\"color: #008000;\">Clb<\/span> <\/em>sono gi\u00e0 ora considerati obsoleti, e sono presenti solo per compatibilit\u00e0 con lo sviluppo attuale di Ezechiele. Le funzioni considerate necessarie, le uniche che saranno esposte nella prossima versione, sono appunto la\u00a0 <em><span style=\"color: #008000;\">Clb.push_v<\/span><\/em> e la <span style=\"color: #008000;\"><em>Clb.push_s<\/em><\/span><\/p><p>tutte le altre funzioni attualmente presenti saranno sostituite utilizzando il paradigma dei <em><span style=\"color: #008000;\">Comandi\u00a0<\/span><\/em>in seguito descritto<\/p><h4><span style=\"color: #008000;\">Sessione<\/span><\/h4><p>Una sessione gestisce una connessione aperta fra Colibri ed un client; la sessione permette di comunicare richieste e ricevere dati da parte del client. Ogni sessione \u00e8 gestita da una classe <em><span style=\"color: #008000;\">Session\u00a0 <\/span><\/em>istanziata,\u00a0 connessa ad una istanza <span style=\"color: #008000;\"><em>Ezc_contex<\/em> <\/span>nella dll nativa <em><span style=\"color: #008000;\">CLB_Ezechiele, <\/span><\/em>\u00a0ed \u00e8 individuata da un id unico assegnatogli a seguito dell&#8217;apertura della connessione (vedi Clb.Open_connection ).<\/p><p><span style=\"color: #008000;\"><em>Ezc_context<\/em> <\/span>\u00e8, dal punto di vista funzionale,\u00a0 equivalente ad un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_socket#:~:text=A%20network%20socket%20is%20a,API)%20for%20the%20networking%20architecture.\">socket<\/a> che permette di accedere a tutte le funzionalit\u00e0 esposte da Colibri, da parte di ciascun client.<\/p><p>Ciascuna sessione pu\u00f2 mandare o ricevere dati da Ezc_context attraverso un protocollo ed un insieme di funzioni che saranno di seguito descritte.<\/p><h4><strong><span style=\"color: #008000;\">Argomenti primitivi<\/span><\/strong><\/h4><p>Gli argomenti sono i tipi di dati primitivi che possono essere passati a <em><span style=\"color: #008000;\">Ezc_context<\/span> <\/em>attraverso la sessione aperta.<\/p><p>La classe che definisce il tipo di argomenti possibili \u00e8 la <em><span style=\"color: #008000;\">arg.\u00a0<\/span><\/em><span style=\"color: #333333;\"> i tipi di argomento sono definiti attraverso l&#8217;enumeratore<\/span> <span style=\"color: #000000;\"><em><span style=\"color: #008000;\">push_info_type .<\/span><\/em><\/span><\/p><p><span style=\"color: #000000;\">Attualmente sono definiti due soli tipi di argomenti primitivi: <em><span style=\"color: #008000;\">char *<\/span><\/em> e <span style=\"color: #008000;\"><em>void *<\/em><\/span>, sufficienti per definire tutte le funzionalit\u00e0 a basso livello della comunicazione con le dll native di Colibri.<\/span><\/p><p>Le classi primitive come come int, float, ecc. sono sempre passate come tali o puntatori void, nel caso di informazione richiesta.<\/p><p>In seguito definiremo meglio tali modalit\u00e0.<\/p><h4><span style=\"color: #008000;\">Argomenti complessi<\/span><\/h4><p>Esistono altre classi di supporto alla gestione degli argomenti, che consideriamo di alto livello, in funzione della loro complessit\u00e0; queste classi sono fornite, o possono essere costruite, inglobando le funzionalit\u00e0 di scambio dei campi e strutture dati in esse contenuti;\u00a0 ad esempio la classe <em><span style=\"color: #008000;\">json_io<\/span><\/em>, che permette di ricevere\/esportare strutture di dati (.. un atlante colore, una lista di file in una directory ..ecc) contiene due funzioni, <em><span style=\"color: #008000;\">json_io.input\u00a0 e json_io.output\u00a0<\/span><\/em>che servono ad offuscare le modalit\u00e0 di trasferimento e ricezione degli argomenti relativi con Colibr\u00ec.<\/p><h4><span style=\"color: #008000;\">Comandi<\/span><\/h4><p>Un comando \u00e8 una stringa che contiene una frase del tipo<\/p><p style=\"text-align: center;\">&#8220;<span style=\"color: #3366ff;\"><em>get color_book<\/em><\/span>&#8220;, .., &#8220;<span style=\"color: #3366ff;\">get list color_book<\/span>&#8220;.. ecc.<\/p><p>Un comando definisce quindi un&#8217;azione richiesta a Colibri ed \u00e8 concepito per essere descrittivo della stessa.<\/p><p>Ad un comando posono seguire seguire uno o pi\u00f9 argomenti, definiti <em>argomenti del comando.<\/em><\/p><p>I comandi sono il modo standard per comunicare fra Ezechiele e Colibri, ed hanno il vantaggio di non dovere richiedere\u00a0 l&#8217;esposizione di altre funzioni da parte di Colibr\u00ec, oltre le 7 attualmente fornite dalla classe di interfaccia <span style=\"color: #008000;\"><em>Clb<\/em><\/span>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-643d13f\" data-id=\"643d13f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-627fc95 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"627fc95\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-70d4999\" data-id=\"70d4999\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-43a364a elementor-widget elementor-widget-text-editor\" data-id=\"43a364a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Configurazione del progetto<\/h3><p>Come tutte le assembly di Colibr\u00ec il progetto viene configurato per un output del codice compilato nella cartella del programma di test CLB_import_native.\u00a0<\/p><p>Inoltre abilitare nella sezione Debug il debug del codice nativo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-cef893f\" data-id=\"cef893f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5e744d3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5e744d3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-ecaa70b\" data-id=\"ecaa70b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9e0ade6 elementor-widget elementor-widget-image\" data-id=\"9e0ade6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"4125\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/clb_ezechiele_net_proprieta_progetto\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=468%2C684&amp;ssl=1\" data-orig-size=\"468,684\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"CLB_Ezechiele_net_propriet\u00e0_progetto\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=205%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=468%2C684&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"468\" height=\"684\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=468%2C684&amp;ssl=1\" class=\"attachment-large size-large wp-image-4125\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?w=468&amp;ssl=1 468w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?resize=205%2C300&amp;ssl=1 205w\" sizes=\"(max-width: 468px) 100vw, 468px\" data-attachment-id=\"4125\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/clb_ezechiele_net_proprieta_progetto\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=468%2C684&amp;ssl=1\" data-orig-size=\"468,684\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"CLB_Ezechiele_net_propriet\u00e0_progetto\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=205%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/CLB_Ezechiele_net_proprieta_progetto.jpg?fit=468%2C684&amp;ssl=1\" role=\"button\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-e7c2eaa\" data-id=\"e7c2eaa\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2cd4ae4 elementor-widget elementor-widget-image\" data-id=\"2cd4ae4\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" data-attachment-id=\"4154\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/attachment\/assembly_config_debug\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=952%2C682&amp;ssl=1\" data-orig-size=\"952,682\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"assembly_config_debug\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=300%2C215&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=640%2C458&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"640\" height=\"458\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=640%2C458&amp;ssl=1\" class=\"attachment-large size-large wp-image-4154\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?w=952&amp;ssl=1 952w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?resize=300%2C215&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?resize=768%2C550&amp;ssl=1 768w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-attachment-id=\"4154\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/attachment\/assembly_config_debug\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=952%2C682&amp;ssl=1\" data-orig-size=\"952,682\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"assembly_config_debug\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=300%2C215&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/assembly_config_debug.jpg?fit=640%2C458&amp;ssl=1\" role=\"button\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f0db10 elementor-widget elementor-widget-image\" data-id=\"3f0db10\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" data-attachment-id=\"4164\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/attachment\/classi_clb_ezechiele_net\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" data-orig-size=\"192,200\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"classi_Clb_Ezechiele_net\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"192\" height=\"200\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" class=\"attachment-large size-large wp-image-4164\" alt=\"\" data-attachment-id=\"4164\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/attachment\/classi_clb_ezechiele_net\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" data-orig-size=\"192,200\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"classi_Clb_Ezechiele_net\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/classi_Clb_Ezechiele_net.jpg?fit=192%2C200&amp;ssl=1\" role=\"button\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3a94c09 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3a94c09\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-34b6108 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"34b6108\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-e01ebd8\" data-id=\"e01ebd8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-baf150d elementor-widget elementor-widget-text-editor\" data-id=\"baf150d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Le classi di CLB_Ezechiele_net<\/h3><p>Le classi sono state progettate per la comunicazione con l&#8217;applicativo di Colibri.<\/p><p>L&#8217;applicazione Ezechiele sul server utilizza direttamente alcune delle classi, mentre altre sono da considerare ad uso interno dell&#8217;assembly.<\/p><p>Tutte le classi sono comunque dichiarate pubbliche, accessibili a tutte le funzioni dell&#8217;applicazione Ezechiele.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-04c5bcb\" data-id=\"04c5bcb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2e31b9f elementor-widget elementor-widget-image\" data-id=\"2e31b9f\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4218\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/comunicazioni_clb\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=748%2C572&amp;ssl=1\" data-orig-size=\"748,572\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"comunicazioni_clb\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=300%2C229&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"640\" height=\"489\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" class=\"attachment-large size-large wp-image-4218\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?w=748&amp;ssl=1 748w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?resize=300%2C229&amp;ssl=1 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-attachment-id=\"4218\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/comunicazioni_clb\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=748%2C572&amp;ssl=1\" data-orig-size=\"748,572\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"comunicazioni_clb\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=300%2C229&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" role=\"button\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-372a281 elementor-widget elementor-widget-text-editor\" data-id=\"372a281\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #808080;\">S<\/span><span style=\"color: #808080;\">chema delle comunicazioni fra le classi di Clb_Ezechiele_net. L&#8217;assembly \u00e8 un&#8217;interfaccia fra l&#8217;applicazione client ed il server che contiene i servizi di Colibr\u00ec<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-de7e0dc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"de7e0dc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-013b43c\" data-id=\"013b43c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1f02318 elementor-widget elementor-widget-text-editor\" data-id=\"1f02318\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><span style=\"color: #008000;\">Clb\u00a0<\/span><\/h4><p>La classe espone attualmente 7 metodi\u00a0 \u00a0ciascuno relativo ad una funzione esportata dalla dll Clb_Ezechiele in Colibri.<\/p><p>Ogni funzione ritorna un valore booleano che definisce il successo (true) o l&#8217;insuccesso della chiamata. nel caso di fallimento, la descrizione dell&#8217;eventuale errore sar\u00e0 ottenuto attraverso la funzione della sessione Session.get_clb_error (), che rimander\u00e0 una struttura json di dettaglio.<\/p><p>il primo argomento delle funzioni esposte \u00e8 sempre un handle all&#8217;istanza Ezc_context remota (cio\u00e8 gestita dalla dll nativa CLB_Ezechiele..). solo la funzione <em><span style=\"color: #008000;\">Open_connection<\/span><\/em> riceve un puntatore all&#8217;id , le altre il valore dello stesso.<\/p><h5>bool Open_connection(int* id)<\/h5><p>Apre una connessione fra Colibri ed il client che lo richiede, rimandando l&#8217;id\u00a0 di un&#8217;istanza (socket)\u00a0 <em><span style=\"color: #008000;\">Ezc_context<\/span><\/em>.\u00a0<\/p><p>La funzione \u00e8 usata internamente solo dalla classe <span style=\"color: #008000;\"><em>Session\u00a0<\/em><\/span><\/p><h5>bool Close(int* id)<\/h5><p>anche questa funzione \u00e8 usata solo\u00a0 internamente dalla\u00a0 classe <span style=\"color: #008000;\"><em>Session\u00a0<\/em><\/span>, ed ha il compito di chiudere l&#8217;istanza del socket <em><span style=\"color: #008000;\">Ezc_context <\/span>i<\/em>n precedenza aperta (l&#8217;id passato individua lo stesso).<\/p><h5><strong>bool GetImageInfo(int id, int* dx, int* dy, float* resx, float* resy, int* pixel_size)<\/strong><\/h5><p>La funzione \u00e8 da considerare obsoleta, e rimanda le informazioni dimensionali di un&#8217;immagine aperta e residente in un <em><span style=\"color: #008000;\">Ezc_context<\/span> <\/em>remoto.\u00a0 Attualmente \u00e8 sostituita dal Comando &#8220;<span style=\"color: #0000ff;\"><em>get image info<\/em><\/span>&#8221;\u00a0<\/p><h5>public static extern bool GetImageArea(int id, int* x, int* y, int* dx, int* dy, int* pixel_size, void** buf, float scl);<\/h5><p>Anche questa funzione \u00e8 considerata obsoleta perch\u00e9 gi\u00e0 sostituita dal comando &#8220;<span style=\"color: #0000ff;\"><em>get image area<\/em><\/span>&#8221; che discuteremo in seguito e che \u00e8 utilizzato internamente a Session.<\/p><p>La funzione richiede il buffer relativo ad un&#8217;area dell&#8217;immagine aperta nel contesto remoto (<em><span style=\"color: #008000;\">Ezc_context<\/span> <\/em>definito dall&#8217;id). L&#8217;area \u00e8 ottenuta alla scala richiesta\u00a0 (<span style=\"color: #0000ff;\">scl<\/span>) mentre le dimensioni passate sono sempre nella scala 1:1. le dimensioni reali estratte saranno riportati nei pointer <span style=\"color: #0000ff;\">x,y,dx,dy<\/span> passati inizialmente come origine sull&#8217;immagine non scalata.<\/p><p>Il buffer *buf \u00e8 completamente gestito internamente alla Ezc_Context, che lo rilascer\u00e0, quando necessario. La sua accessibilit\u00e0 pertanto \u00e8 relativa alla fase della richiesta e non sar\u00e0 pi\u00f9 valido in seguito..<\/p><h5>bool FreeBuffer(int id, void* buf)<\/h5><p>A volte Ezechiele ricever\u00e0 un buffer remoto contenente informazioni richieste, che dovranno essere rilasciate alla decadenza del loro utilizzo.<\/p><p>Chiamare questa funzione per rilasciare il buffer remoto (chiariremo caso per caso quando necessario).<\/p><p>anche questa funzione \u00e8 da considerare obsoleta, e sostituita dal comando &#8220;<em><span style=\"color: #0000ff;\">free buffer<\/span><\/em>&#8221;\u00a0<\/p><h5><strong>bool Push_v(int id, int push_info_type, void* v)<\/strong><\/h5><p>Questa funzione, come la successiva <em><span style=\"color: #008000;\">Push_s<\/span> <\/em>ha il compito di immettere nello stack di costruzione dei comandi un argomento <span style=\"color: #0000ff;\">void *v<\/span>.\u00a0<\/p><p>Le due funzioni <em><span style=\"color: #008000;\">Push_v<\/span> <\/em>e <em><span style=\"color: #008000;\">Push_s<\/span> <\/em>hanno come altro argomento un valore <span style=\"color: #008000;\"><span style=\"color: #0000ff;\">int push_info_type<\/span><\/span>\u00a0 riconosciuto e gestito internamente dalla classe <em><span style=\"color: #008000;\">Sender <\/span><\/em>che ha il compito di trasferire i comandi formattati opportunamente alla Ezc_context remota. L&#8217;uso di queste due funzioni sar\u00e0 descritto in seguito, parlando della classe <em><span style=\"color: #008000;\">Sender<\/span><\/em><\/p><h5>bool Push_s(int id, int push_info_type, string v)<\/h5><p>Questa funzione, come la precedente <em><span style=\"color: #008000;\">Push_s<\/span> <\/em>ha il compito di immettere nello stack di costruzione dei comandi un argomento, questa volta di tipo <span style=\"color: #0000ff;\">string<\/span>.<\/p><p>L&#8217;uso di questa due funzione sar\u00e0 descritto in seguito, parlando della classe <em><span style=\"color: #008000;\">Sender<\/span><\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9498789 elementor-widget elementor-widget-global elementor-global-4252 elementor-widget-button\" data-id=\"9498789\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wp.me\/p9rwsf-15V\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">articolo successivo sull'argomento..<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bacc79d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bacc79d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-807a280\" data-id=\"807a280\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>CLB_Ezechiele_net CLB_Ezechiele_net.dll\u00a0 \u00e8 un assembly contenente le funzioni e classi di interfaccia fra le dll native di Colibri e l&#8217;applicativo Ezechiele di Bottinelli. Fra le classi della libreria una in particolare, la Clb, ha il compito di comunicare le richieste alla CLB_Ezechiele.dll,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4016,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false,"jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[123,90,122],"tags":[],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/Ezechiele_1000_150.jpg?fit=1000%2C265&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9rwsf-12G","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4010"}],"collection":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/comments?post=4010"}],"version-history":[{"count":79,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4010\/revisions"}],"predecessor-version":[{"id":4420,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4010\/revisions\/4420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/media\/4016"}],"wp:attachment":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/media?parent=4010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/categories?post=4010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/tags?post=4010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}