第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Marshal.Copy 拋出 ArgumentOutOfRangeException

Marshal.Copy 拋出 ArgumentOutOfRangeException

C#
回首憶惘然 2023-07-09 17:10:57
我正在嘗試將數(shù)據(jù)從 C# 應(yīng)用程序中的托管內(nèi)存編組到非托管內(nèi)存位置,以供專有 DLL 使用。該值是一個(gè)浮點(diǎn)型,但 DLL 需要一個(gè)指向浮點(diǎn)型的指針。在構(gòu)造函數(shù)中,我的想法是將非托管內(nèi)存分配給指針,然后將傳入的浮點(diǎn)值復(fù)制到非托管內(nèi)存。internal class MyInternalClass{    private static float[] fltArry;    public struct MY_DLL_STRUCT    {        public IntPtr fltPtr;        public MY_DLL_STRUCT(float flt)        {            MyInternalClass.fltArry = new float[] { flt };            this.fltPtr = Marshal.AllocHGlobal(sizeof(float) * MyInternalClass.fltArry.Length);            Marshal.Copy(MyInternalClass.fltArry, 0, this.fltPtr, sizeof(float) * MyInternalClass.fltArry.Length);        }    }}這些大小對(duì)我來(lái)說(shuō)看起來(lái)不錯(cuò),但是每當(dāng)Marshal.Copy調(diào)用該函數(shù)時(shí)ArgumentOutOfRangeException就會(huì)拋出一個(gè)異常。有任何想法嗎?
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

最后一個(gè)參數(shù)Marshal.Copy是要復(fù)制的元素?cái)?shù)。

我懷疑你應(yīng)該使用1(或MyInternalClass.fltArry.Length) 而不是sizeof(float) * MyInternalClass.fltArry.Length。您傳遞的值太大,因此:

例外情況

ArgumentOutOfRangeException - startIndex 和長(zhǎng)度無(wú)效。


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 233 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)