2
我有非託管代碼(後端)和託管代碼(前端)的混合體,因此,我需要從託管代碼調用非託管代碼,使用互操作技術和DllImport
屬性。基於OS平臺的DllImport
現在,我編譯了兩個版本的非託管代碼,用於32位和64位操作系統;它們分別被命名爲service32.dll
和service64.dll
。所以,在我的.Net代碼,我將不得不兩個dll文件做了DllImport
:
[DllImport(@"service32.dll")] //for 32 bit OS invocation
public static void SimpleFunction();
[DllImport(@"service64.dll")] //for 64 bit OS invocation
public static void SimpleFunction();
,並呼籲他們根據我的應用程序運行在哪個平臺上。
現在的問題是,對於每個非託管函數,我必須聲明兩次,一次是32位操作系統,一次是64位操作系統。這是一個重複的工作,每次我更改非託管函數的簽名時,都必須在兩處對其進行修改。
有無論如何,我可以改變DllImport
參數,以便正確的dll將被自動調用,具體取決於平臺嗎?
automagically !!!!!!! – 2010-06-14 02:50:02
它對我來說看起來不像Fortran。 – 2010-06-14 08:30:42
@高,代碼是C#,互操作代碼。 – Graviton 2010-06-14 10:06:29