نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل String در dll

  1. #1
    مهمان

    Tick مشکل String در dll

    سلام بچه ها
    من یه DLL ساختم اینجوری:
    Procedure GetMainBoardSerial(Var S:PChar);STDCall;
    Var Bios:TSMBios;
    Begin
    Bios:=TsmBios.Create;
    bios.GetInfo;
    S:=PChar(Bios.MainBoardSerial);
    Bios.Free;
    End;

    وقتی اونو اینجوری صدا میزنم خطای access violation میده:
    procedure TForm1.Button1Click(Sender: TObject);
    var s:PChar;
    begin
    GetMem(s,128);
    GetMainBoardSerial(S);

    FreeMem(s,128);

    end;


    رشته ای که برمیگردونه 10کاراکتر بیشتر نیست.
    چیکار باید بکنم؟

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1383
    پست
    181
    به جاى مقدار مستقیم دادن به متغیر S توى DLL از StrCopy استفاده کن، شاید مشکلت حل بشه. در ضمن براى استفاده از به جاى GetMem و FreeMem از StrNew و StrDispose استفاده کن.

  3. #3
    مهمان
    قابل توجه مشکل اینجوری حل شد:

    function GetMainBoardSerial:PChar;
    Var Bios:TSMBios;
    Begin
    Bios:=TsmBios.Create;
    bios.GetInfo;
    Result := StrAlloc(Length(Bios.MainBoardSerial)& #41;;
    StrCopy(Result,PChar( Bios.MainBoardSerial));

    Bios.Free;
    End;

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1383
    محل زندگی
    سمنان - ایران
    پست
    440
    سلام
    همانطور که در برنامه نوشته شده در DLL از نوع String نمی توان استفاده کرد ولی به جای آن می توان:
    1- از نوع PCHAR استفاده کرد .
    2- همانطور که در توضیحات Wizard DLL وجود دارد از UNIT . MMBorland استفاده کنید .

  5. #5
    مهمان
    همانطور که در توضیحات Wizard DLL وجود دارد از UNIT . MMBorland استفاده کنید
    این بدترین راه حل ممکنه چون هم باید یونیت ShareMem رو به Uses اضافه کنی هم فایل Borland??.dll که اسمش کامل یادم نیست رو بزاری کنار برنامه ضمنا سرعتش هم خیلی کمه.
    همونی که بالا نویشتم بهترین راه ممکنه

تاپیک های مشابه

  1. شکستن string
    نوشته شده توسط alirzn در بخش C#‎‎
    پاسخ: 9
    آخرین پست: سه شنبه 27 شهریور 1386, 02:20 صبح
  2. تبدیل string به int
    نوشته شده توسط smt_414 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 10 شهریور 1386, 15:32 عصر
  3. مشکل با تبدیل String به کاراکتر
    نوشته شده توسط shaghayegh_6113 در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 2
    آخرین پست: شنبه 12 اسفند 1385, 19:19 عصر
  4. وارونه کردن یک string
    نوشته شده توسط setak در بخش VB.NET
    پاسخ: 2
    آخرین پست: سه شنبه 05 دی 1385, 10:36 صبح
  5. [public string this[string key معنی این تابع چیست؟؟؟فوری
    نوشته شده توسط izadi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 11 آبان 1383, 15:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •