Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Problem with C++ DLL In Delphi

snmzasnmza Member Posts: 1
[b]I need to use external dll to communicate with digital camera and I found program with appropriate dll that enable communication.In dll description I found function that suits my needs. Looks like this[/b][code]
// ReleaseShutter()
// Inputs:
// timeOutInSecs timeout in secs to wait for picture to be
// taken and downloaded (max 60 secs)
// pszFilename option string in which to store the name of the
// saved image. Set to NULL if not required
// numChars length of pszFilename if defined
// Returns:// 0 - Success, image saved
// 1 - PSRemote is not running
// 2 - PSRemote is running but camera is not connected
// 3 - Camera is busy
// 4 - Timeout waiting for image to be saved
// 5 - Error releasing shutter
// Description:
// Take a picture and optionally wait for it to be saved to disk.
PSRemoteLIB_API int __stdcall ReleaseShutter( int timeoutInSecs,
char* Filename,int numChars );[/code]

[b]Ok, I load dll, use function an get status and external program takes a picture but I CAN NOT GET FILENAME BACK!!!! Here is my code[/b]
[code]procedure TForm1.Button2Click(Sender: TObject);
var Status: Integer;
Name1: PChar;
DLLHandle: Thandle;
TakePic: Function (T: Integer; Nam: Pchar;Num:Integer):Integer; {$IFDEF WIN32} stdcall; {$ENDIF}

begin DLLHandle := LoadLibrary('PSRemoteLib.dll');
if DLLHandle >= 32 then { success }
begin Name1:=stralloc(1024);
TakePic := GetProcAddress(DLLHandle, 'ReleaseShutter');
else MessageDlg('Error: could not find PSRemoteLib.dll', mtError, [mbOk], 0);

What I do wrong ???? In the sample .exe that comes with dll and runs in cmd mode this works fine !!!! Program takes picture and report filename ????I have a sample source code and looks like this

// take a single shot and report the filename
char filename[256];
int status = ReleaseShutter(60, filename, sizeof(filename));
case 0: // success if (filename && strlen(filename))
cout << "Success, image saved as: " << filename << endl; <br />}
cout << "Success, image saved on CF card?" << endl; <br />}
case 1: cerr << "PSRemote is not running" << endl;<br /> break;
case 2: cerr << "Camera is not connected" << endl;<br /> break;
case 3: cerr << "Camera is busy" << endl;<br /> break;
case 4: cerr << "Timeout waiting for image to be saved" << endl;<br /> break;
cerr << "ERROR: unexpected return status: " << status << endl; <br />}

return nRetCode;
[/code][b]PLEASE HELP !!! [/b]
Sign In or Register to comment.