Click here to Skip to main content
15,888,454 members
Home / Discussions / Managed C++/CLI
   

Managed C++/CLI

 
GeneralRe: How to Use String::Format Method Pin
bob169728-Aug-06 9:04
bob169728-Aug-06 9:04 
GeneralRe: How to Use String::Format Method Pin
led mike8-Aug-06 10:34
led mike8-Aug-06 10:34 
AnswerRe: How to Use String::Format Method [modified] Pin
George L. Jackson8-Aug-06 9:30
George L. Jackson8-Aug-06 9:30 
GeneralRe: How to Use String::Format Method Pin
Nagaraju_Focus8-Aug-06 18:47
Nagaraju_Focus8-Aug-06 18:47 
QuestionODBC Native API Pin
Sk8tzz7-Aug-06 20:29
Sk8tzz7-Aug-06 20:29 
AnswerRe: ODBC Native API Pin
Eric Dahlvang15-Aug-06 7:18
Eric Dahlvang15-Aug-06 7:18 
QuestionPlaying PCM data Pin
t4ure4n7-Aug-06 4:52
t4ure4n7-Aug-06 4:52 
QuestionC++ to C# through dll Pin
t4ure4n6-Aug-06 11:26
t4ure4n6-Aug-06 11:26 
Hello

I have to use a Win32 API in a C# project (VS 2K5). I want to create a API wrapper class in C++. And then use it from my C# code.
I tried to use P/Invoke in C# to create a wrapper class, some of the methods didn’t work because Pointers to memory were not working..

QUESTION 1

Now how do I create a wrapper class, save it as dll and use it in C#. Please tell me whole procedure.
Because when I try to create a C++ project The VS2005 gives me a list of templates to choose from like “CLR Console Application” “Windows Forms Application”, etc etc

Question 2

My project has a method that continuously reads a block of PCM data from an external radio receiver connected to the computer through USB.

Is there and way to listen to that signal through C#. IS PCM just like audio signal … if not how do I convert it into audio.
------------------------------------------------------------------------------------------------
I am writing an example of the function I have to write and tell me what type of project I have to make and what procedure I have to follow.

#include "stdafx.h"<br />
#include <stdio.h><br />
#include <windows.h><br />
<br />
// G3 API function type declarations<br />
typedef int (__stdcall *FNCOpenRadioDevice)(int iDeviceNum);<br />
typedef BOOL (__stdcall *FNCCloseRadioDevice)(int hRadio);<br />
typedef BOOL (__stdcall *FNCSetAtten)(int hRadio, BOOL fAtten);<br />
typedef BOOL (__stdcall *FNCSetPower)(int hRadio, BOOL fPower);<br />
typedef BOOL (__stdcall *FNCSetAGC)(int hRadio, int iAGC);<br />
typedef BOOL (__stdcall *FNCCodecStart)(int hRadio,void (__stdcall *CallbackFunc)(void *),<br />
void *CallbackTarget);<br />
typedef BOOL (__stdcall *FNCCodecStop)(int hRadio);<br />
typedef unsigned int (__stdcall *FNCCodecRead)(int hRadio,void *Buf,unsigned int Size);<br />
<br />
typedef struct {<br />
int hRadio;<br />
FILE *IFFile;<br />
FNCCodecRead CodecRead;<br />
} CallbackContext;<br />
<br />
void __stdcall CodecCallback(void *Target)<br />
{<br />
unsigned int i;<br />
char Buf[4096];<br />
CallbackContext *Ctx=(CallbackContext *)Target;<br />
<br />
while ((i=Ctx->CodecRead(Ctx->hRadio,Buf,sizeof(Buf)))!=0) <br />
	fwrite(Buf,i,1,Ctx->IFFile);<br />
}<br />
//int _tmain(int argc, _TCHAR* argv[])<br />
int main(int argc, char* argv[])<br />
{<br />
// load the G3 API library<br />
HMODULE dll=LoadLibraryA("wrg303api.dll");<br />
if (!dll) {puts("WRG303API.DLL not found !"); return 0;}<br />
<br />
// link G3 API functions<br />
FNCOpenRadioDevice OpenRadioDevice=(FNCOpenRadioDevice)GetProcAddress(dll,"OpenRadioDevice");<br />
FNCCloseRadioDevice CloseRadioDevice=(FNCCloseRadioDevice)GetProcAddress(dll,"CloseRadioDevice");<br />
FNCSetAtten SetAtten=(FNCSetAtten)GetProcAddress(dll,"SetAtten");<br />
FNCSetPower SetPower=(FNCSetPower)GetProcAddress(dll,"SetPower");<br />
FNCSetAGC SetAGC=(FNCSetAGC)GetProcAddress(dll,"SetAGC");<br />
FNCCodecStart CodecStart=(FNCCodecStart)GetProcAddress(dll,"CodecStart");<br />
FNCCodecStop CodecStop=(FNCCodecStop)GetProcAddress(dll,"CodecStop");<br />
FNCCodecRead CodecRead=(FNCCodecRead)GetProcAddress(dll,"CodecRead");<br />
<br />
// open the first available radio<br />
int hRadio=OpenRadioDevice(0);<br />
if (!hRadio) {puts("No WR-G303 device could be opened !");FreeLibrary(dll); return 0;}<br />
<br />
// set Power, AGC and Attenuator<br />
if (SetPower(hRadio,TRUE)) puts("The device is turned ON"); else puts("The device failed to turn ON");<br />
if (SetAtten(hRadio,FALSE)) puts("The attenuator is OFF"); else puts("The attenuator failed to turn OFF");<br />
if (SetAGC(hRadio,3)) puts("The AGC is FAST"); else puts("The AGC failed to switch");<br />
<br />
// open the IF samples destination file<br />
FILE *f=fopen("IF2.pcm","wb");<br />
<br />
// start the IF stream from the codec<br />
CallbackContext Ctx;<br />
<br />
Ctx.hRadio=hRadio;<br />
Ctx.IFFile=f;<br />
Ctx.CodecRead=CodecRead;<br />
if (!CodecStart(hRadio,CodecCallback,&Ctx)) puts("Codec streaming couldn't be started!");<br />
else {<br />
puts("Codec streaming properly started!");<br />
while (!ftell(f) ) <br />
{<br />
}<br />
CodecStop(hRadio);<br />
fclose(f);<br />
}<br />
<br />
// close the device handle<br />
if (CloseRadioDevice(hRadio)) puts("The device is closed properly"); else puts("The device failed to close");<br />
<br />
// free the G3 API library<br />
FreeLibrary(dll);<br />
<br />
return 0;<br />
}<br />


o O º(`'·.,(`'·., ☆,.·''),.·'')º O o°
»·'"`»* *☆ t4ure4n ☆* *«·'"`«
°o O º(,.·''(,.·'' ☆`'·.,)`'·.,)º O o°

AnswerRe: C++ to C# through dll Pin
led mike7-Aug-06 6:15
led mike7-Aug-06 6:15 
QuestionSTL incompatible with Windows Forms? Pin
ricecake4-Aug-06 7:57
ricecake4-Aug-06 7:57 
AnswerRe: STL incompatible with Windows Forms? Pin
ricecake4-Aug-06 10:34
ricecake4-Aug-06 10:34 
Questionc++/cli interop: wrapper should be notified if native object changes Pin
Ralf A.4-Aug-06 5:33
Ralf A.4-Aug-06 5:33 
QuestionVector list Pin
GameDesignerXIX3-Aug-06 16:43
GameDesignerXIX3-Aug-06 16:43 
AnswerRe: Vector list Pin
Christian Graus3-Aug-06 16:52
protectorChristian Graus3-Aug-06 16:52 
AnswerRe: Vector list Pin
OrcBighter23-Aug-06 20:07
OrcBighter23-Aug-06 20:07 
QuestionProblem including C++ code in C# assembly. Pin
OrcBighter23-Aug-06 15:42
OrcBighter23-Aug-06 15:42 
AnswerRe: Problem including C++ code in C# assembly. Pin
Milton Karimbekallil4-Aug-06 2:06
Milton Karimbekallil4-Aug-06 2:06 
GeneralRe: Problem including C++ code in C# assembly. Pin
OrcBighter26-Aug-06 18:27
OrcBighter26-Aug-06 18:27 
QuestionHow to integrate best an MFC-component in .Net? Pin
gunag3-Aug-06 3:06
gunag3-Aug-06 3:06 
AnswerRe: How to integrate best an MFC-component in .Net? Pin
Milton Karimbekallil4-Aug-06 1:22
Milton Karimbekallil4-Aug-06 1:22 
AnswerRe: How to integrate best an MFC-component in .Net? Pin
gunag5-Aug-06 0:53
gunag5-Aug-06 0:53 
GeneralRe: How to integrate best an MFC-component in .Net? Pin
Milton Karimbekallil7-Aug-06 0:00
Milton Karimbekallil7-Aug-06 0:00 
QuestionAsyncCallback constructor error Pin
DQ843-Aug-06 1:44
DQ843-Aug-06 1:44 
QuestionCan any "macro" take variable number of arguments? Pin
Pradosh Tapan Datta2-Aug-06 22:49
Pradosh Tapan Datta2-Aug-06 22:49 
AnswerRe: Can any "macro" take variable number of arguments? Pin
toxcct2-Aug-06 23:57
toxcct2-Aug-06 23:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.