קריאת ReternVal מ ATL ב ASP

ezalcman

New member
קריאת ReternVal מ ATL ב ASP

יש לי DLL שכתוב ב ATL יש לו פונקציה
GetFileBySocket([in] BSTR * FilePath, [in] int CompressionType, [in] BSTR * FileType, [out] long *ReturnVal);​
כאשר אני מפעיל את הDLL מVB אני מקבל את הערך של ReturnVal נכון כאשר אני מפעיל את הDLL מASP אני מקבל תמיד 0 מישהו יודע למה
ערן
 

ezalcman

New member
זה הקוד

ASP objStuff.GetFileBySocket cstr(physicalpath),1,cstr(filetype),Clng(ReturnVal) VB objTestATL.GetFileBySocket strFileName, 1, "EPSF", hr​
 

icemano

New member
במקרה שלך עדיף להגדיר

את הפונקציה באופן הבא:
HRESULT GetFileBySocket([in] BSTR sFilePath, [in] long CompressionType, [in] BSTR sFileType, [out,retval] long *plnReturnVal); ´calling from ASP Dim ret ret = GetFileBySocket(physicalpath, 1, filetype) ´ calling from VB dim ret as long ret = GetFileBySocket(physicalpath, 1, filetype)​
אל תשכח שב ASP כל המשתנים הם מטיפוס variant, לכן כאשר השתמשת ב clng(retval) נוצר בעצם משתנה variant זמני וזאת הסיבה שהמשתנה המקורי לא עודכן.
 
למעלה