Newsgroup: it.comp.lang.visual-basic
Titolo: [NET]utilizzo di funzioni in c

Salve a tutti, avrei da porre questo quesito:
In un progetto scritto in visual basic .net è possibile utilizzare funzioni
scritte in c?
Intendo dire al di là di compilare una dll scritta in c.....
Insomma, per dirla tutta: ho il sorgente di una applicazione scritto in
ansi-c, che al suo interno svolge alcune cose che mi interesserebbe
utilizzare in un'altra applicazione scritta in 
vb.net
, c'è un modo,
praticabile da un limitato conoscitore di C, ma in compenso assolutamente
digiuno di C++, per fare questo?
Salutoni e ringraziamenti anticipati a tutti
Sergio

Escludendo la via della Dll Win32, potresti trasformare il codice C in un
progetto C# (oppure VC++ managed) tipo class library e utilizzare la library
dal progetto 
VB.NET
, questo ti permetterebbe addirittura di switchare tra
codice VB.Net e C# durante il debug.
HTH
--
Corrado Cavalli [Microsoft MVP]
UGIdotNET - 
http://www.ugidotnet.org

 codice VB.Net e C# durante il debug.
grazie per l'attenzione, come prima cosa  :-)
come seconda cosa, permettimi di chiederti alcune precisazioni, perchè mi
sto muovendo su un terreno che assolutamente non conosco...
Lo stato dell'arte è più o meno questo:
Al momento l'unica cosa che sono riuscito a fare è stata quella di creare un
nuovo progetto C++ managed, ci ho inserito tutti i sorgenti
dell'applicazione, l'ho compilata ed essa funziona.
Ho provato ad aggiungere il progetto c++ (esattamente così come era) alla
soluzione a cui sto lavorando, ma dal codice VB non "vedo" le funzioni del
progetto c++. Temo che già dall'ingenuità di queste operazioni si deduca il
mio livello culturale in materia....
A questo punto le domande, ancora più ingenue, peggiorate dal fatto che non
ho qui vs.net....
1) quale, tra i tanti progetti suggeriti dal visual studio .net è una class
library? (va bene anche una risposta del tipo "La quarta)
2) bisogna in qualche modo agggiungere una parola chiave alla dichiarazione
della funzione C perchè essa divenga visibile all'esterno?
3) esiste in rete qualche documento che spieghi come fare questi giochetti,
in modo tale che io possa in futuro evitare di rompere le scatole al
prossimo?
Salutoni e grazie ancora
Sergio

della funzione C perchè essa divenga visibile all'esterno?
Se intendi l'assembly .net scritto in c++ occorre che dichiari public
gli oggetti che vuoi far vedere.
-- 
ciao, hal

 direttiva Imports.
vagolando su un ng della microsoft ho trovato la seguente indicazione, in
risposta ad un tizio che poneva praticamente la mia stessa domanda.
<citazione>
What you want to do is create a C++ "Win32 Project".  This will create a
native (as opposed to a managed) C++ application.  A wizard will pop up when
you create the project.  Go to the "Application Settings" page and specify
that the output is a DLL.
Then, for each function you want to export, you want to add the following to
the declaration:
    __declspec(dllexport)
For example:      __declspec(dllexport) void Foo()
                        {
                            /* Do stuff here */
                        }
<fine citazione>
adesso si tratterebbe di provare a mettere in pratica i tuoi suggerimenti,
quelli di Corrado e quelli di mamma MS, e vedere qual è quello che riesco a
"gestire" meglio, però temo di non poter operare fino a lunedì sera.
Se cavo un ragnetto dal buco mi faccio sentire.
Salutoni
Sergio

sorgenti.
Ecco perche' da 
vb.net
 non vedi nulla :-(
Comunque, adesso non ho tempo, ma se serve nel fine settimana potrei
mandare al sito comune un esempietto "ad usum delphini".
-- 
ciao, hal

mandare al sito comune un esempietto "ad usum delphini".
-- 
ciao, hal ed i congiuntivi ;-)

 mandare al sito comune un esempietto "ad usum delphini".
A parte le correzioni lessicali (nella mia ignoranza trovavo che la frase
qui riportata non avesse alcun errore) un esempietto č cosa sempre gradita
che non si rifiuta mai ;-)
Oh, senza impegno, se nel week end hai di meglio da fare (cosa che ti auguro
di tutto cuore), non mi sentirņ minimamente offeso.
Salutoni
Sergio