PDA

View Full Version : سوال: خروجي تابع



abshar_sms
یک شنبه 01 دی 1392, 21:42 عصر
با سلام
من دو تابع دارد در C#‎ و حالا مي خوام در دلغي استفاده كنم بايد چكار كنم
function abc (const a1: string; const a2: string ): ArrayOfTestGridList; stdcall;
function def (const d1: string; const e1: string): aaaGridList; stdcall;

firststep
یک شنبه 01 دی 1392, 22:27 عصر
سلام دوست عزیز سوالتون خیلی گنگ بود
اگر منظورتون ارتباط بین دلفی و سی شارپ هست این به صورت معمول امکانی برایش سنجیده نشده است
و اگر مسمم به این کار هستید می تونید از ویدیویی که اقای عشایری در این زمینه اماده کردن استفاده نمایید
حالا برای اطلاع خودتون می گم
یا باید از برنامه c# یک dll در ست کنین و در دلفی استقاده کنین
یا از یک سری امکانات ابزاری به نام remobject استفاده کنین
توصیه می کنم قسمت کنفرانس های دلفی در زیر تالار دلفی عمومی نگاه کنین
هم یک ویدو و جود داره دربارهremobject و هم در 24 قسمت دلفی طریقه استفاده از dll ها به کلی شرح داده شده است
موفق باشید

abshar_sms
یک شنبه 01 دی 1392, 22:34 عصر
سلام
با تشكر از پاسختان
اين يك dll هست كه دو تابع بالا در آن وجود دارد كه در سي شارپ جواب مي دهد اما حالا مي خوام نحوه استفاده و خواندن آن در دلفي به چه شكلي است

Felony
دوشنبه 02 دی 1392, 09:27 صبح
DLL تون با #C ساخته شده ؟ اگر بله DLL های ساخته شده توسط #C ساختار استاندارد ویندوز رو رعایت نمیکنن ، DLL ها دارای کلاسی هستن که متدها داخل اونها پیاده شدن ، این قبیل کلاس ها به دلیل Managed بودن قابلیت استفاده شدن در زبان های Native رو ندارن ، اگر توابع Export شده DLL رو هم بررسی کنید میبینید که تابعی معرفی نشده .

برای Export کردن یک تابع در #C پکیجی به نام Unmanaged Exports (https://www.nuget.org/packages/UnmanagedExports) وجود داره که با نصبش توسط Package Manager Console در Visual Studio میتونید برای توابع DLL های Managed خودتون Export های Native بگیرید .

abshar_sms
دوشنبه 02 دی 1392, 16:55 عصر
با dll به نتيجه نرسيدم حالا از وب سرويس استفاده مي كنم
اطلاعاتي كه هست

aaarGridList = class;

aaaGridList = class(TRemotable)
private
FUserName: string;
FUserName_Specified: boolean;
FFirstName: string;
FFirstName_Specified: boolean;


published
property UserName: string Index (IS_OPTN) read FUserName write SetUserName stored UserName_Specified;
property FirstName: string Index (IS_OPTN) read FFirstName write SetFirstName stored FirstName_Specified;





function GetUsers(const username: string; const password: string): ArrayOfaaaGridList; stdcall;


براي استفاده ار اين تابع چكار كنم راهنمايي كنيد

Valadi
چهارشنبه 04 دی 1392, 19:51 عصر
با سلام
با اين اطلاعات ناقصه نميشه پاسخ داد دوستاني هم كه پاسخ دادند لطف كردند در حق شما ...
آدرس وب سرويس دقيق بگيد تا مشكل شما حل بشه

AbbasVB
دوشنبه 30 دی 1392, 00:36 صبح
DLL تون با #C ساخته شده ؟ اگر بله DLL های ساخته شده توسط #C ساختار استاندارد ویندوز رو رعایت نمیکنن ، DLL ها دارای کلاسی هستن که متدها داخل اونها پیاده شدن ، این قبیل کلاس ها به دلیل Managed بودن قابلیت استفاده شدن در زبان های Native رو ندارن ، اگر توابع Export شده DLL رو هم بررسی کنید میبینید که تابعی معرفی نشده .

برای Export کردن یک تابع در #C پکیجی به نام Unmanaged Exports (https://www.nuget.org/packages/UnmanagedExports) وجود داره که با نصبش توسط Package Manager Console در Visual Studio میتونید برای توابع DLL های Managed خودتون Export های Native بگیرید .
سلام
من پکیج هاش رو دانلود کردم ولی نصب نمیشوند
من از VS 2012 استفاده می کنم می خوام یه دی ال ال با C# بنویسم که فقط یک رشته از یک زبان دیگه مثل دلفی یا vb6 بگیره و اون رو با مسیج باکس نشون بده
اگر ممکن است یه آموزش خوب در این باره بذارید
البته اگه با مثال باشه ممنون می شم

Felony
دوشنبه 30 دی 1392, 07:01 صبح
نیازی به دانلود نیست ، پکیج نابرده شده جزو گالری NuGet هست ، کافیه یه پروژه جدید بسازید و از منوی Tools -> Library Package Manager گزینه Package Manager Console رو انتخاب کنید و دستور زیر رو وارد کنید :

Install-Package UnmanagedExports

بعد از دریافت ، پکیج به صورت خودکار به رفرنسهای پروژه اضافه میشه و میتونید ازش استفاده کنید .

AbbasVB
دوشنبه 30 دی 1392, 15:28 عصر
نیازی به دانلود نیست ، پکیج نابرده شده جزو گالری NuGet هست ، کافیه یه پروژه جدید بسازید و از منوی Tools -> Library Package Manager گزینه Package Manager Console رو انتخاب کنید و دستور زیر رو وارد کنید :

Install-Package UnmanagedExports

بعد از دریافت ، پکیج به صورت خودکار به رفرنسهای پروژه اضافه میشه و میتونید ازش استفاده کنید .
این کار رو هم کرده بودم ولی ارور زیر رو میده

Install-Package : The current environment doesn't have a solution open.
At line:1 char:1
+ Install-Package UnmanagedExports
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetNoActiveSolution,NuGet.PowerShell.Commands.In stallPackageCommand

PM>

Felony
دوشنبه 30 دی 1392, 16:25 عصر
من تو پست قبلیم هم گفتم یه پروژه بسازید ، پست من برات ارزشی نداشت حداقل متن پیغام خطا رو بخون :عصبانی:

اون پکیج باید به یه پروژه اضافه بشه یا نه ؟!

لطفا برای وقت دیگران ارزش قائل بشید ، حاظر نیستید برای رسیدن به جواب جستجو کنید ، متن پیغام رو بخونید ، حداقل متنی که برای راهنماییتون نوشته میشه رو وقت بزارید و دقیق بخونید .

AbbasVB
دوشنبه 30 دی 1392, 16:50 عصر
من تو پست قبلیم هم گفتم یه پروژه بسازید ، پست من برات ارزشی نداشت حداقل متن پیغام خطا رو بخون :عصبانی:

اون پکیج باید به یه پروژه اضافه بشه یا نه ؟!

لطفا برای وقت دیگران ارزش قائل بشید ، حاظر نیستید برای رسیدن به جواب جستجو کنید ، متن پیغام رو بخونید ، حداقل متنی که برای راهنماییتون نوشته میشه رو وقت بزارید و دقیق بخونید .
آقا معذرت می خوام خوب مشکل داشتم
مشکلم حل شد می بایست پروژه ذخیره می شد!خوب دوباره پست ندادم که بگم مشکل حل شد!
به هر حال ببخشید