- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- Apple Watch
- iPhone topik
- Garmin Instinct – küldetés teljesítve
- One mobilszolgáltatások
- Samsung Galaxy S24 - nos, Exynos
- Így teljesít a Nubia Z80 Ultrában az új Snapdragon
- Itt a Xiaomi Android 16-os frissítési ütemterve a kompatibilis készülékekre
- Android alkalmazások - szoftver kibeszélő topik
- Yettel topik
Új hozzászólás Aktív témák
-
asimov007
csendes tag
Kedves forumozok!
a következő oproblémám adódott!
Ir ni kell c++-ban egy dll-t amit delphiben kell meghivni!
Gyuri16 kedves segítségével a delphi rendben vanmde valamiért a dll-nek nem tudom korrektül átadni a mat1 charaktertömböt!
Mivel mind a c++,mind a delphi tudásom minimális,hozzátok fordulok segítségért!!!Nagyon szépen köszönöm!
mind a két program szintaktikailag helyes?(Lefordul),a tdump mutatja is a kiért entry pointot,de delhiből való hiváskor,a c++ nem ad vissza korrekt értékekeket.
HA a delphiben kimommentezem a dll hivást,a kattingatás tökéletes(Köszönöm gyuri16)
A megadott direkt paraméterekkel is mindig 'O' jön vissza!Köszönöm!!!!
ez a c++
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
#define DLLIMPORT __declspec (dllexport)
#define DllExport extern __declspec(dllexport)
#else /* Not BUILDING_DLL */
#endif /* Not BUILDING_DLL */
#endif
#include <stdio.h>
#include <string.h>
int sor( int mat1,int a, int b);
char mat1[10][10];
extern "C"
{
DllExport char kiert(char mat[10][10],int acol, int arow,char jatekos)
{
char c[10]=
{'1','2','3','4','5','6','7','8','9'};
return c[acol];
// return mat[1][1];
}
class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);
private:
};ez a dlphi kod!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;var CanSelect: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
jatekos:char;
i:integer;
j:integer;
Form1: TForm1;
Type mat= array [1..10,1..10] of char;
function kiert(mat: mat;acol: integer;arow: integer;jatekos:char):char; stdcall; external 'Projekt1.dll';
implementation
{$R *.dfm}
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,ARow: Integer; var CanSelect: Boolean);
var
mat1:mat;
begin
if StringGrid1.Cells[ACol, ARow] <> '' then
exit
else
StringGrid1.Cells[ACol, ARow]:=jatekos;
if jatekos='O' then
jatekos:='X'
else
jatekos:='O';
// mat1[Acol,Arow]:= jatekos;
mat1[1,1]:= jatekos;
//Showmessage( kiert(mat1,1,1,jatekos));
//Showmessage( kiert(mat1,acol,arow,jatekos));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
j:integer;
begin
jatekos:='X';
for i:=1 to 10 do
for j:=1 to 10 do
StringGrid1.Cells[i,j]:= '';
end;
end. -
asimov007
csendes tag
válasz
Gyuri16 #1784 üzenetére
Kedves Gyuri 16!
Tudom,egy kissé pofátlan a kérés,de kb 1 hete használom a delphit.
Hogyan tudnám ciklusba rakni a Select -et és a rekurzivitást elkerülni!
Tényleg nagyon idegen nekem még program!
Ha szemtelennek tartasz,bátran mondd meg!!
És köszi a gyors választ
Légyszi irdd meg ,egyáltalán zavarhatlak-e hülye kédésekkel? -
asimov007
csendes tag
Sziasztok!
Nagyon gyenge vagyok delhpiböl!
El kéne egy kis segítség!!!!Miért száll el azonnal ez a gyengécske program?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Type mat= array [1..10,1..10] of integer;
function kiert(mat: mat;xpos: integer;ypos: integer;jatekos:char):integer; stdcall; external 'Projekt1.dll';
implementation
{$R *.dfm}
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var mat1:mat;
vertek:integer;
jatekos:char;
i:integer;
j:integer;
b:boolean;
begin
jatekos:= 'g';
vertek:= 2;
while vertek <> 0 do
begin
if jatekos = 'g' then
jatekos:= 'j'
else
jatekos:= 'g';
StringGrid1SelectCell(Sender,acol, arow,b);
begin
if jatekos = 'g' then
StringGrid1.Cells[Acol,Arow]:='O'
else
StringGrid1.Cells[Acol,Arow]:='X';
end;
end;
end; // while
end.
Új hozzászólás Aktív témák
- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- Windows 10
- sziku69: Fűzzük össze a szavakat :)
- Kormányok / autós szimulátorok topikja
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Futás, futópályák
- Apple Watch
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- AZONNALI SZÁLLÍTÁS Eredeti Microsoft Office 2019 Professional Plus
- Samsung Galaxy S24 FE / 8/128GB / Kártyafüggetlen / 12Hó Garancia
- Bomba ár! Dell Latitude 5590 - i5-8GEN I 16GB I 256SSD I 15,6" FHD I HDMI I CAM I W11 I Gari
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 5060 Ti 16GB GAMER termékbeszámítással
- Akció! Újra Gamer EGEREK! Glorious , Endgamer XM1R , Nibio
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest