में सी # से गुजरने से डेल्फी डीएल फ़ंक्शन कॉल करें। मुझे डेल्फी फ़ंक्शन को .net से बाइट सरणी पर संचालित करने का सबसे अच्छा तरीका पता लगाने में समस्या हो रही है।एक बाइट सरणी
डेल्फी हस्ताक्षर इस तरह दिखता है:
procedure Encrypt(
var Bytes: array of byte;
const BytesLength: Integer;
const Password: PAnsiChar); stdcall; export;
सी # कोड इस तरह दिखता है:
[DllImport("Encrypt.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
public static extern void Encrypt(
ref byte[] bytes,
int bytesLength,
string password);
बाइट सरणी घोषणा से पहले var
और ref
छोड़ना विफल लग रहा था, लेकिन यह आवश्यक है के बाद से मैं केवल सरणी की सामग्री बदल रहा हूं, सरणी ही नहीं?
इसके अलावा, किसी कारण के लिए मैं,, डेल्फी में सरणी की लंबाई प्राप्त करने के लिए अगर मैं Length(Bytes)
से BytesLength
पैरामीटर को निकालने के काम नहीं करेगा अगर मैं BytesLength
पैरामीटर, Length(Bytes)
शुरू होता है जोड़ने के काम करने के लिए, लेकिन BytesLength
है नहीं कर पा रहे एक गलत मूल्य