Calling a dll from forms 6
Hello,
Sorry, I'm brazilian and my english isn't very good...
I'm trying to call some functions from a dll invoked by a trigger on event WHEN-BUTTON-PRESSED. I make a package as this:
---- Package Spec ----
PACKAGE anserlib IS
function autoconnect(p_connport in number) return boolean;
END;
---- Package Body ----
PACKAGE BODY anserlib IS
libhandle ora_ffi.libHandleType;
autoconnect_fhandle ora_ffi.funchandletype;
setprinton_fhandle ora_ffi.funchandletype;
setprintoff_fhandle ora_ffi.funchandletype;
res varchar2(200);
commport number;
function ff_autoconnect(fhandle ora_ffi.funchandletype, p_commport in number) return boolean;
pragma interface(C, ff_autoconnect, 11265);
function autoconnect(p_connport in number) return boolean is
begin
return(ff_autoconnect(autoconnect_fhandle,p_connport));
end;
begin
libhandle := Ora_Ffi.Load_Library('C:\Juarez\Anser\','Anser712.dll');
autoconnect_fhandle := ora_ffi.register_function(libhandle,'AutoConnect');
ora_ffi.register_parameter(autoconnect_fhandle, ora_ffi.C_INT);
ora_ffi.register_return(autoconnect_fhandle, ora_ffi.C_INT);
setprinton_fhandle := ora_ffi.register_function(libhandle,'SetPrintOn');
ora_ffi.register_return(setprinton_fhandle, ora_ffi.C_INT);
setprintoff_fhandle := ora_ffi.register_function(libhandle,'SetPrintOff');
ora_ffi.register_return(setprintoff_fhandle, ora_ffi.C_INT);
ora_ffi.generate_foreign(libhandle, 'anser');
exception
when ora_ffi.ffi_error then
--message(:bloco_teste.mensagem, acknowledge);
message(tool_err.message, acknowledge);
END;
and the trigger is:
declare
v_res boolean;
v_commport number;
begin
v_commport := 3;
v_res := anserlib.autoconnect(v_commport);
end;
When I run the form and press button appears the message (it appears in portuguese to me, maybe the text is not the same in english, but i'll try to translate):
FRM-40734: Internal Error: occours a PL/SQL error.
Someone have an idea to help me...?
Thanks vry much!!! :)
In my opinion this error is something like 'General Protection Fault error' in Windows. I sow this error when my DLL worked with memory incorectly or called OCI functions which don't work under Forms Runtime.
I think the problem might be caused by a mistake inside the DLL. The other problem may be that you use incorect calling conversion. For instance, the default calling conversion in Borland C Builder or Delphi is fastcall, not cdecl.
p.s.
1. Sorry for my English too :).
2.
ora_ffi.generate_foreign(libhandle, 'anser');I'm not sure what ora_ffi.generate_foreign does exactly, because I have never used it. As far as I know it isn't needed for this code. I'd recomend you to remove this line from your program.
Similar Messages
-
Hi,
I want to call a report from Form 6i at run time. And I write the following code in When Buttton Press trigger . when I press the button it will gives no response.
declare
x report_object;
y varchar2(100);
begin
x:=find_report_object('billform');
y:=run_report_object(x);
end;
for more information , path of my report is: C:\REP\billform.rdf
please send me the solution of this problem
E_mail: [email protected]
Shahzadhi,
now i am using the following code in when button press trigger. if u give me ur e_mail address i will send u FMB and RDF files used for Scott/tiger EMP table for the sample.
declare
repo_Para ParamList;
BEGIN
repo_Para:=Get_Parameter_List('Report_para');
IF not Id_null(repo_Para) THEN
destroy_parameter_list(repo_para);
end if;
repo_Para:=Create_Parameter_List('Report_para');
Add_Parameter(Repo_para,'PARAMFORM',TEXT_PARAMETER,'No');
Add_Parameter(Repo_para,'MAXIMIZE',TEXT_PARAMETER,'Yes');
Add_Parameter(Repo_para,'BDATE',TEXT_PARAMETER,:BLOCK3.a_dptno);
Add_Parameter(Repo_para,'EDATE',TEXT_PARAMETER,:BLOCK3.b_dptno);
RUN_PRODUCT(REPORTS,'c:\apu\DDATE.rep', SYNCHRONOUS,
runtime, FILESYSTEM,Repo_para,NULL);
end;
BDATE & EDATE are two user parameters created in report.
when i press the button in form pass parameters the report will be called but no data will be display but when i directly run reprot from report buider and pass same values of BDATE & EDATE it will show data.
please give me ur e mail address or help me for this problem
best regards,
shahzad -
CALLING A REPORT FROM FORMS (PROBLEM)
MY PROBLEM IS THE NEXT:
I CREATED A MASTER-DETAIL REPORT CALLING 'ASUNTOS'WITH THE NEXT QUERY:
SELECT ABOGADOS.APELLIDO_P,ABOGADOS.APELLIDO_M,ABOGADOS.NOMBRES,
ASUNTOS.EXP_INT,ASUNTOS.MATERIA,ASUNTOS.GERENCIA,
ASUNTOS.EMPRESA,ASUNTOS.RECLAMA,ASUNTOS.PESOS,
ASUNTOS.DOLARES
FROM ABOGADOS,ASUNTOS
WHERE ABOGADOS.FICHA = ASUNTOS.F_ABOG
AND ASUNTOS.F_ABOG = :ABOGADO ;
-- ABOGADO = PARAMETER.
THIS REPORT WORKS FINE THE PROBLEM IS WHEN I TRY CALL THIS REPORT FROM FORM I'VE USE A BUTTON(WHEN_BUTTON_PRESSED) WITH THE NEXT CODE:
DECLARE
LISTA PARAMLIST := GET_PARAMETER_LIST('ABOG');
BEGIN
IF ID_NULL(LISTA) THEN
LISTA := CREATE_PARAMETER_LIST('ABOG');
ADD_PARAMETER(LISTA,'DESTYPE',TEXT_PARAMETER,'PRINTER');
ADD_PARAMETER(LISTA,'DESNAME',TEXT_PARAMETER,'LPT2');
ADD_PARAMETER(LISTA,'ABOGADO',TEXT_PARAMETER,TO_CHAR(:ASUNTOS.F_ABOG));
-- ADD_PARAMETER(LISTA,'PARAMFORM',TEXT_PARAMETER,'YES');
END IF;
RUN_PRODUCT(REPORTS,'ASUNTOS',SYNCHRONOUS,RUNTIME,FILESYSTEM,LISTA,NULL);
END;
BUT THE REPORT NOTHING DISPLAY.
THERE ARE SOMETHING WRONG WITH THE CODE IN THE BUTTONRoberto,
Does your report work when it is not called from Forms?
try the following:
[TOOLS_HOME]\BIN\RWRUN60 module=ASUNTOS destype=screen userid=<username>/<password>@<tns> ABOGADO=<some_valid_code>
where TOOLS_HOME is the directory where Reports is installed.
I can see nothing wrong with your code.
Maybe some error in the query?
Also, I would check for the existence of multiple ASUNTOS report definitions. Maybe Forms is calling an older one.
Hope this helps,
Pedro das Neves
([email protected]) -
Calling a report from forms with a paramter form
Hello,
How do you call a report from forms and get it to display the parameter form. Where you can then call the report using this parameter form. I have been using paramform=yes. but it simply runs the form.
I saw on a a thread ages ago that this was a sample of this available for download. Is this true?
thanksHere is my code sorry about posting twice. Please note that the parameter list has been created as described.
report_id := find_report_object('MENU_REPORT_NODE');
Tool_Env.Getvar('ReportsServer', reports_server);
Tool_Env.Getvar('ReportsFolder', reports_folder);
dest_file := reports_folder || :global.username || '\' || rep_name || '.pdf';
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_FILENAME, rep_name);
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_SERVER, reports_server);
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_COMM_MODE, SYNCHRONOUS); -- wait for the report to finish
-- SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_DESNAME, dest_file);
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_DESTYPE, cache);
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_DESFORMAT, 'PDF');
SET_REPORT_OBJECT_PROPERTY(report_id, REPORT_OTHER, 'paramform=yes' || ' ' || 'mode=bitmap');
report_job := run_report_object(report_id); -
Calling external dll from oracle 8i pl/sql
Hi
I am facing in calling extrenal dll from pl/sql.
Steps followed by me are
1.
create library crc_lib as
'D:\ORACLE\ORA81\RDBMS\EXTPROC\EXTPROC\my.DLL';
2.
CREATE OR REPLACE FUNCTION check_file_crc (f1 char)
RETURN BOOLEAN AS
EXTERNAL LIBRARY CRC_LIB
NAME "Check_File_CRC"
LANGUAGE C;
3. CREATE OR REPLACE PROCEDURE CRC_TEST (f1 varchar2) AS
RetValue varchar2(100);
BEGIN
if check_file_crc(f1) then
RetValue := '0';
else
RetValue := '1';
end if;
DBMS_OUTPUT.PUT_LINE(RetValue);
EXCEPTION
when others then
DBMS_OUTPUT.PUT_LINE(sqlerrm|| 'I am in exception');
END;
4.ET SERVEROUTPUT ON
SQL> exec crc_test('C:\file.txt');
ORA-28576: lost RPC connection to external procedure agent
I am in exception
I have tsnames.ora as
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
and listner.ora as
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\ora81)
(PROGRAM = extproc)
I am unable to resolve problem please help.
Prashant
Edited by: prashant13 on Jul 23, 2009 11:27 AMSee if MOS note 468404.1 proves helpful here (though not meant for your version of Oracle).
-
Calling SQL*Loader from Forms
Hi,
I was wondering if anyone has called SQL*Loader from Forms?
What I am wanting to do is use Oracle Forms as the interface where you can specify a file that you can import into the database and it will use a set control file. Push the import button and SQL*Loader does the rest.
Is using Java code to call SQL*Loader from Forms a viable option, or is there an easier way to achieve the desired outcome.
Any ideas or guidance will be much appreciated.
Thanks,
Scott.Scott,
In forms, there's a HOST built-in command which is supposed to execute any o/s commands.
What you have to do is :
1. Bult up the string exacltly in the fashion which you will run in o/s
2. Call the HOST Built-in and pass in the string
Here's a example :
Declare
lOsCmd Varchar2(1000) := Null;
Begin
lOsCmd := 'sqlldr user-id=userid/passwd@connectStr '
|| ' control=c:\temp\abc.ctl log=c:\temp\abc.log '
|| ' bad = c:\temp\abc.log';
Host (lOsCmd, No_Screen);
End;
-- Shailender Mehta -- -
I have a vi that initializes, measures, and releases
an OSA instrument. I want to call this routine from VB.
I used Standard calling convention when making DLL from LV.
Here is my VB declaration:
Private Declare Sub OSAMeasurement Lib "C:\ADE\OSAMeasurement.dll" Alias "OSADFBMeasurement" _
(ByVal GPIB As Long, _
ByVal Serial_Number As String, _
ByVal FileName As String, _
ByVal File_Path As String, _
ByVal Start_Wavelength_nm As Double, _
ByVal Stop_Wavelength_nm As Double, _
ByVal Level_Scale_dB As Double, _
ByVal Res_nm As Double, _
ByVal Peak_Wavelength As Double, _
ByVal Peak_Level As Double, _
ByVal SMSR As Double, _
ByVal FWHM As Double, _
ByVal Mode_Offset As Double, _
ByRef Level_Array() As Double, _
ByRef Wa
velength_Array() As Double, _
ByVal Array_Length As Long)
Here is my VB call:
Call OSAMeasurement(Form1.OSA.PrimaryAddress, _
(strOXM & Form1!txtOPMNumber), _
(CStr(CInt(dblSetVoltage)) & "v_Scan.txt"), _
(txtDataStoragePath & strOXM & " " & Form1!txtOPMNumber & "\"), _
1520, 1620, 5, 1, Peak_Wavelength, Peak_Level, _
SMSR, FWHM, Mode_Offset, _
Level_Array, Wavelength_Array, 1001)
I get RunTime Error "49"
Bad DLL calling convention
What is wrong?
Any suggestions/comments?
Attachments:
OSA.zip 703 KBBasically what i want to do is to call the microchip's dll called "mpusbapi.dll" from VB6. This dll is written in C++. This dll has some basic functions of usb like MPUSBRead() , MPUSBWrite , MPUSBOpen() etc.
I have made a usb data acquisition card and i want to communicate with this card by means of VB 6. Please tell me or send a tutorial of calling a DLL from VB 6.
Any help greatly appreciated
Attachments:
_mpusbapi.cpp 42 KB
_mpusbapi.h 19 KB -
How to call a URL from forms ?
Dear All,
I would like to invoke / call a URL from forms. I know we can make a call Using Web.show_document. But this will execute in a browser.
What i need to do is, i have to send a request to by calling an URL, that should not visible to any body.
This is my requirement, please help if you know.
Thanks
Balajihi,
here is a quick example : (data from url returns as a clob. you need to write it at db. and call from forms.)
FUNCTION Get_DataFromUrl(pUrl IN VARCHAR2,pProxy IN VARCHAR2,pData IN OUT CLOB) RETURN NUMBER IS
vRcv UTL_HTTP.HTML_PIECES;
vData CLOB;
eNoDataReceived EXCEPTION;
BEGIN
UTL_HTTP.SET_DETAILED_EXCP_SUPPORT(TRUE);
-- Get data pieces from Url
vRcv := UTL_HTTP.REQUEST_PIECES(pUrl,Proxy => pProxy);
IF vRcv.COUNT < 1 THEN
RAISE eNoDataReceived;
ELSE
-- Append varchar2 table data into clob variable
DBMS_LOB.CreateTemporary(vData,FALSE,DBMS_LOB.CALL);
FOR i IN 1..vRcv.COUNT LOOP
DBMS_LOB.WriteAppend(vData,LENGTH(vRcv(i)),vRcv(i));
END LOOP;
-- Copy local data into return variable
DBMS_LOB.Copy(pData,vData,DBMS_LOB.GetLength(vData));
DBMS_LOB.FreeTemporary(vData);
END IF;
RETURN SUCCESS;
EXCEPTION
WHEN eNoDataReceived THEN
RETURN FAILURE;
WHEN UTL_HTTP.INIT_FAILED THEN
RETURN FAILURE;
WHEN UTL_HTTP.Request_Failed THEN
RETURN FAILURE;
WHEN OTHERS THEN
RETURN FAILURE;
END Get_DataFromUrl;
hope this helps.
Engin. -
Hi all
I have two questions
1) I know about the visual Basic 6 but what is measurement studio for visual Basic 6?
2) Can anyone tell me how to call a dll from Visual Basic 6? Any example for this ?
Any help greatly appreciated :-)Basically what i want to do is to call the microchip's dll called "mpusbapi.dll" from VB6. This dll is written in C++. This dll has some basic functions of usb like MPUSBRead() , MPUSBWrite , MPUSBOpen() etc.
I have made a usb data acquisition card and i want to communicate with this card by means of VB 6. Please tell me or send a tutorial of calling a DLL from VB 6.
Any help greatly appreciated
Attachments:
_mpusbapi.cpp 42 KB
_mpusbapi.h 19 KB -
Hi,
I'm having trouble calling labview dll from C# to perform certain function.
The function supposed to return the values in the float Analysis[] array. However, when I execute it it only returns zero values.
It seems that some parameters are not properly passed to the dll.
Below is the function in the header file:
void __stdcall Optical_Center(char FileDirectory[], long ImagePtr,
short int Height, short int Width, char ReadFromFile, float Analysis[],
long lenAnalysis);
and my corresponding dll import in c#:
[DllImport(@"SMIA.dll", CharSet = CharSet.Ansi)]
public static extern void Optical_Center([MarshalAs(UnmanagedType.LPStr)]string FileDirectory, long ImagePtr,
short Height, short Width,char ReadFromFile, IntPtr Analysis,
long lenAnalysis);
string str = @"C:\SMIA.raw";
int len = 3;
long m_lenAnalysis = 3;
long m_ImagePtr = 0;
short m_Height = 2464;
short m_Width = 3280;
IntPtr m_PtrArray = Marshal.AllocHGlobal(len * Marshal.SizeOf(typeof(float)));
char m_ReadFromFile = '1';
Optical_Center(str,m_ImagePtr,m_Height,m_Width,m_ReadFromFile,m_PtrArray,m_lenAnalysis);
float[] m_Analysis = new float[len];
Marshal.Copy(m_PtrArray, floatArray,0,len);
Marshal.FreeHGlobal(m_PtrArray);
string printstr = "";
for (int i=0; i<len; i++)
printstr = printstr + floatArray[i].ToString() + "\n";
MessageBox.Show(printstr);
Appreciate if anyone can help, thanks.
KLI was just about to post the header file of the DLL, when
I noticed that there's a function called LVDLLStatus.
This little thingie turned out to be a rather handy tool.
With that function I found that in the DLL I had a problem
with another function that prevented the DLL to be correctly
loaded.
This other function in the DLL is for generating digital output
and it worked as it should, when tested from LV.
Anyway if someone is interested, I got it working by using
the LoadLibrary and GetProcAddress function, as in the
source code thatI posted earlier.
I will investigate what is wrong with that digital output, and
post into a another thread if I have problems with that. -
How to call LabVIEW dll from ATL COM dll
I have tried to call simple LabVIEW 8.6 Dll from win32 test application, class Library.
I have include LabVIEW generated SharedLib.h file and SharedLib.lib file in the test application which I created as simple win32 console project and also from win32 class Library. I was sucessfully able to call my LabVIEW dll funtion.
But when I create ATL COM project and try to add SharedLib.h file and SharedLib.lib file I used to get following erors
Error 1 error C2733: second C linkage of overloaded function 'StrCatW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 463
Error 2 error C2733: second C linkage of overloaded function 'StrCpyW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 464
Error 3 error C2733: second C linkage of overloaded function 'StrCpyNW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 465
Error 4 error C2733: second C linkage of overloaded function 'StrCmpW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 466
Error 5 error C2733: second C linkage of overloaded function 'StrCmpNW' not allowed d:\program files\national instruments\labview 8.6\cintools\extcode.h 467
these many errors.
Will some one explain me how to call LabVIEW dll from ATL COM dll.
Thanks & Regards,
JayI also had this problem. My application is unicode-aware, but I was attempting to link it to a library with primitive C-string arguments. You could dynamically load the DLL as suggested (more work), modify the header files (really not recommended), or if you are feeling lucky you could try fooling the compiler, as I was successfully able to do in Visual Studio 2010, by steering the preprocessor around those functions (assuming you're not using them, of course -- otherwise this probably wouldn't work):
// prepare for NI extcode.h inclusion. avoid linker errors for this project.
#define StrCatW(a,b) IgnoreLinkError_StrCatW(a,b);
#define StrCpyW(a,b) IgnoreLinkError_StrCpyW(a,b);
#define StrCpyNW(a,b,c) IgnoreLinkError_StrCpyNW(a,b,c);
#define StrCmpW(a,b) IgnoreLinkError_StrCmpW(a,b);
#define StrCmpNW(a,b,c) IgnoreLinkError_StrCmpNW(a,b,c);
// header file for my LabView-built DLL (ASCII single-byte character arguments)
#include <MyLibraryHeader.h>
// clean up afterwards, put things back to 'normal'
#undef StrCatW
#undef StrCpyW
#undef StrCpyNW
#undef StrCmpW
#undef StrCmpNW -
Calling Oracle graphics from forms
Dear friends,
My problem is that whenever i called a graph from forms
5.0 it give me error message that "PL/SQL evnivornment cannot
created"
Thanx
Faisal
nullHi friends,
I got the same problem and when I discussed with some one, he told me that it is a bug of forms 5.0 So when I used same code in forms 6.0 beta, it worked !
Nadeem -
Calling an EXE from Forms 4.5
How do i call a windows Exe from forms. Whats the exact syntax to do that? Code sample would help.
Thanks!Client/server mode calling an EXE from Forms 4.5
The following is a Foreign Function Interface that I employed to launch an outside program in its own asynchronous window. It was a great alternative to the HOST command.
The disadvantage to the HOST command was that the launched program would have to be closed before you could return to the form. With this method the the launched program
could be minimized etc. and you could switch back and forth between forms and it.
===============================================================
PACKAGE fp_winexec IS
FUNCTION run(p_cmd IN OUT VARCHAR2)
RETURN BOOLEAN;
END;
PACKAGE BODY fp_winexec IS
dll_handle ORA_FFI.LIBHANDLETYPE;
winexec_handle ORA_FFI.FUNCHANDLETYPE;
FUNCTION RunICD(
handle IN ORA_FFI.FUNCHANDLETYPE;
cmd IN OUT VARCHAR2;
disp_mode IN PLS_INTEGER)
RETURN PLS_INTEGER;
PRAGMA INTERFACE(C, RunICD, 11265);
FUNCTION run(p_cmd IN OUT VARCHAR2)
RETURN BOOLEAN IS
v_tmp PLS_INTEGER;
v_cmd VARCHAR2(2000) := p_cmd;
v_retval BOOLEAN := TRUE;
BEGIN
v_tmp := RunICD(winexec_handle, v_cmd, 1);
IF v_tmp = 2
THEN
MESSAGE('Cannot find '||v_cmd||' or one of its components);
v_retval := FALSE;
END IF;
return(v_retval);
END run;
BEGIN
dll_handle := ORA_FFI.REGISTER_LIBRARY
(NULL, 'krn386.exe');
winexec_handle := ORA_FFI.REGISTER_FUNCTION(dll_handle, 'WinExec', ORA_FFI.PASCAL_STD);
ORA_FFI.REGISTER_RETURN(winexec_handle, ORA_FFI.C_INT);
ORA_FFI.REGISTER_PARAMETER(winexec_handle, ORA_FFI.C_CHAR_PTR);
ORA_FFI_REGISTER_PARAMETER(winexec_handle, ORA_FFI.C_INT);
END;
====================================================================
-- To call the program from forms
DECLARE
v_retval BOOLEAN;
BEGIN
v_retval := fp_winexec.run(:control_block.program_to_run);
END; -
Hi I have to call a dll which returns some message by accepting a file name as input.
The plateform is Oracle form 6i deployed on oracle AS , and Oracle 8i DB as backend.
Kindly suggest , what can be best startegy-
call dll using form 6i in client server .
call dll using 3 tier deployement.
or make an ASP or JSP application
Please suggest.
PrashantCalling DLL using form 6i
Regards, -
URGENT: Calling Pro C from Forms
Hi All,
How to call a Pro C function from forms?
Can i call a function declared inside a DLL or i can only call a Pro C executable?
Where can i look for more information?
TIA
NaveenNaveen
If you are trying to call a user exit written in PRO*C ( I assume ur OS is Windows since u re talking about DLL) then yes you can make a dll then likn this dll and call it from ur forms using user_exit. Refer Forms help
But If you wanna call a pure Pro*c program then call the executable ( nothing but a compiled C program) using probably host command
Cheers
Vij
Maybe you are looking for
-
My original apple id is not an email address . I bought iCloud memory via that same account no problem. When setting up iCloud on iPad you cannot have a primary iCloud account unless it has an email address . Made new account as per instruction ie [e
-
QuickTime color shift in KN 08 vs 09
I am working with two different content contributors, Frank and Frannie, to create an iMovie based on some animated Keynote slides that share the same design template. I created the template in Keynote 08, and shared a copy with Frank, who also uses
-
Setting Application Default Page
Hi, I have an application that I want the start page to be the HOME page instead of the LOGIN page. I looked every where in Application Builder but I could not find how to change the start page. Is there a way to change the start page of my applicati
-
Could some-one please help, nothing I do will stop the number of e-mails coming through. I never want anything to do with Apple again. I still have the original problem but on to of that my in box is being filled with e-mails from the discussion gr
-
IPHON3 3GS STUCK ON APPLE LOGO
I have a 3gs 32gb – had phone stuck on apple logo, put in recovery mode and restored to factory settings etc – still stuck with apple logo on screen!!!!help!!! what else can i try:(