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

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

p/invoke 方法返回空結(jié)構(gòu)

p/invoke 方法返回空結(jié)構(gòu)

C#
長(zhǎng)風(fēng)秋雁 2022-12-24 14:32:14
我有包含結(jié)構(gòu)的 C++ 代碼,我需要將它傳遞給 C#:包裝器.h#pragma oncetypedef struct{    int     int1;    int     int2;} MY_STRUCT;MY_STRUCT mystruct;extern "C" __declspec(dllexport) int __stdcall GetTestStruct(MY_STRUCT* cs_struct);包裝器.cpp:int __stdcall GetTestStruct(MY_STRUCT* cs_struct){    mystruct.int1 = 23;    mystruct.int2 = 45;    cs_struct = &mystruct;    return 0;}包裝器.cs:class Program{  [StructLayout(LayoutKind.Sequential)]  public struct MY_STRUCT  {    public int int1;    public int int2;  }  [DllImport(VpxMctlPath)]  public static extern int GetTestStruct(ref MY_STRUCT mystruct);  static void Main(string[] args)  {    var s = new MY_STRUCT();    GetTestStruct(ref s);  }}運(yùn)行此代碼后,s 的 int1 和 int2 仍然為零。我試圖將 C# 結(jié)構(gòu)字段設(shè)置為私有和公共,但沒(méi)有區(qū)別。我查看了 C++/CLI,但這對(duì)于這個(gè)小任務(wù)來(lái)說(shuō)似乎有些過(guò)分了。有沒(méi)有簡(jiǎn)單的方法可以做到這一點(diǎn)?
查看完整描述

1 回答

?
MMTTMM

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

更改 C++ 函數(shù)以直接在引用的結(jié)構(gòu)上設(shè)置整數(shù)值:


int __stdcall GetTestStruct(MY_STRUCT* cs_struct)

{

    cs_struct->int1 = 23;

    cs_struct->int2 = 45;

    //cs_struct = *mystruct; //This line may not be necessary

    return 0;

}


查看完整回答
反對(duì) 回復(fù) 2022-12-24
  • 1 回答
  • 0 關(guān)注
  • 85 瀏覽

添加回答

舉報(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)