Bonjour,
Je developpe actuellement un programme ayant pour but de ce connecter à une base de donnée Oracle et de dépiler des informations.
Cette étape fonctionne correctement.
Mon problème ce situe au niveau de la connexion.
Lorsque je met les informations de connection (bdd, user et password) en dur, je n'est aucun problèmes.
Mais lorsque je veut me servir de textbox afin que l'utilisateur puisse saisir sa bdd, son user et son password, mon programme ne ce connect plus.
Voici les lignes de code que j'ai mis afin d'établir cette connexion :
using namespace Runtime::InteropServices;
user = (char*)(void*)Marshal::StringToHGlobalAnsi(textBox1->Text);
password = (char*)(void*)Marshal::StringToHGlobalAnsi(textBox2->Text);
bdd = (char*)(void*)Marshal::StringToHGlobalAnsi(textBox3->Text);
J'utilise une convertion car les valeurs des textbox sont en System::String^, alors que mon code issu d'ocilib demande des valeurs en Char.
Avec ce code, mon programme compile.
Je peut saisir mes informations dans les textbox, mais lorsque je veut lancer la connection (en mode debug), une erreur s'affiche :
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at OCI_ErrorGetOCICode(OCI_Error* )
at err_handler(OCI_Error* err) in c:\documents and settings\bchulliat\bureau\syslog3_12_01_10bis\syslog3bis\outils_bdd.h:line 29
at OCI_ConnectionCreate(SByte* , SByte* , SByte* , UInt32 )
at Connection(basic_string<char\,std::char_traits<char>\,std::allocator<char> >* message) in c:\documents and settings\bchulliat\bureau\syslog3_12_01_10bis\syslog3bis\outils_bdd.h:line 65
at Syslog3Bis.Form1.button1_Click(Object sender, EventArgs e) in c:\documents and settings\bchulliat\bureau\syslog3_12_01_10bis\syslog3bis\form1.h:line 267
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3603 (GDR.050727-3600)
CodeBase: file:///cWINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Syslog3Bis
Assembly Version: 1.0.3677.18457
Win32 Version:
CodeBase: file:///cDocuments%20and%20Settings/bchulliat/Bureau/Syslog3_12_01_10bis/debug/Syslog3Bis.exe
----------------------------------------
msvcm80d
Assembly Version: 8.0.50608.0
Win32 Version: 8.00.50727.42
CodeBase: file:///CWINDOWS/WinSxS/x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c/msvcm80d.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///CWINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///CWINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///CWINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///CWINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3082 (QFE.050727-3000)
CodeBase: file:///CWINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Je ne sait pas trop comment m'y prendre afin de corriger cette erreur.
Je pense que cela vien de fait que je converti mon System::String^ en char* alors qu'il faudrai le convertir en char[].
Mais....je ne trouve pas comment faire.
Merci d'avance pour votre aide.