PDA

View Full Version : راهنمایی در مورد نحوه ساختن کنترل ActiveX با Mfc ActiveX Control



kiosksoft
دوشنبه 19 مرداد 1388, 13:32 عصر
با سلام

برای چاپ کردن داده ها باید OCX استفاده کنم . تا حالا هم با Mfc ActiveX Control تو سی++ کار نکردم.

لطفا در مورد نحوه کار و استفاده از این امکان راهنمایی کنید.

توضیحات اولیه : بصورت تستی یک نوع از کنترل ایجاد کردم تابعی رو هم برای تست نئشتم که مثلا یک پیغام خطا ارسال کند اما بعد از صدور پیغام خطا , ارور میدهد.

روش ارسال پیغام :


char str[] = "ok";
char *pStr1 = str;


LPCTSTR myStr = (LPCTSTR)str;
MessageBox(myStr ,0,0);


بعد از نشان دادن پیغام این خطا رخ میدهد :

ByRef value type parameter cannot be null.

تابع بصورت Event در خروجی نشان داده میشود.(هنگام استفاده از کنترل)

در مرحله بعد در همین تابع که میخوام یک فایل Crystal Report رو باز کنم که بتونم چاپ کنم خطا میدهد.

کد باز کردن و گزارش :


IApplicationPtr m_Application;
IReportPtr m_Report;
VARIANT dummy;
VariantInit (&dummy);
dummy.vt = VT_EMPTY;
HRESULT hr = S_OK;
// Specify the path to the report you want to print
_bstr_t ReportPath("c:\\RptTestOcx1.rpt");
variant_t vtEmpty(DISP_E_PARAMNOTFOUND, VT_ERROR);
// Instantiate the IApplication object
m_Application.CreateInstance("CrystalRuntime.Application");
//Open the Report using the OpenReport method
m_Report = m_Application->OpenReport("c:\\RptTestOcx.rpt", dummy.vt);


خطای تولید شده :



Exception of type 'System.OutOfMemoryException' was thrown.


لطفا راهنمایی کنید , با تشکر