LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I actively develop a DLL while interfacing with LabVIEW?

Hi all,

 

I'm writing a DLL that will later be interfaced with some LabVIEW code. Because of LabVIEW's locking behavior on DLL's, I've written a wrapper DLL which calls my DLL function at runtime, so I can continue developing on the main DLL without having to close and reopen LabVIEW all the time. The problem is that the main DLL still has a lock on it, even though I've properly freed the library resource when I'm done calling the function.

 

In debugging, I've used WinDbg and found that LabVIEW has reached a breakpoint, but lacking debug symbols am unable to see how or why LabVIEW is on an internal breakpoint. Here's my WinDbg output:

Microsoft (R) Windows Debugger Version 10.0.17763.1 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

*** wait with pending attach
Symbol search path is: srv*
Executable search path is: 
ModLoad: 00000000`00400000 00000000`02a6f000   C:\Program Files (x86)\National Instruments\LabVIEW 2013\LabVIEW.exe
ModLoad: 00007ffe`9f960000 00007ffe`9fb41000   C:\WINDOWS\SYSTEM32\ntdll.dll
ModLoad: 00000000`77070000 00000000`77200000   ntdll.dll
ModLoad: 00000000`76f80000 00000000`76fd2000   C:\WINDOWS\System32\wow64.dll
ModLoad: 00000000`76ff0000 00000000`77068000   C:\WINDOWS\System32\wow64win.dll
ModLoad: 00000000`76fe0000 00000000`76fea000   C:\WINDOWS\System32\wow64cpu.dll
ModLoad: 00000000`75c70000 00000000`75d50000   KERNEL32.dll
ModLoad: 00000000`75070000 00000000`75254000   KERNELBASE.dll
ModLoad: 00000000`75b00000 00000000`75b78000   ADVAPI32.dll
ModLoad: 00000000`757e0000 00000000`7589f000   msvcrt.dll
ModLoad: 00000000`716e0000 00000000`716e8000   WSOCK32.dll
ModLoad: 00000000`75d90000 00000000`75dd4000   SECHOST.dll
ModLoad: 00000000`76b80000 00000000`76be7000   WS2_32.dll
ModLoad: 00000000`76890000 00000000`76950000   RPCRT4.dll
ModLoad: 00000000`73930000 00000000`73950000   SspiCli.dll
ModLoad: 00000000`73920000 00000000`7392a000   CRYPTBASE.dll
ModLoad: 00000000`76ee0000 00000000`76f38000   bcryptPrimitives.dll
ModLoad: 00000000`73950000 00000000`74c9a000   SHELL32.dll
ModLoad: 00000000`76f40000 00000000`76f79000   CFGMGR32.dll
ModLoad: 00000000`76db0000 00000000`76ece000   ucrtbase.dll
ModLoad: 00000000`75b80000 00000000`75c08000   SHCORE.dll
ModLoad: 00000000`758a0000 00000000`75afc000   combase.dll
ModLoad: 00000000`75f40000 00000000`764f9000   Windows.Storage.dll
ModLoad: 00000000`76bf0000 00000000`76c35000   SHLWAPI.dll
ModLoad: 00000000`769d0000 00000000`769f2000   GDI32.dll
ModLoad: 00000000`74ca0000 00000000`74e04000   gdi32full.dll
ModLoad: 00000000`76950000 00000000`769cd000   msvcp_win.dll
ModLoad: 00000000`766c0000 00000000`7684d000   USER32.dll
ModLoad: 00000000`75d50000 00000000`75d67000   win32u.dll
ModLoad: 00000000`76510000 00000000`7651f000   AppCore.dll
ModLoad: 00000000`74e10000 00000000`74e28000   profapi.dll
ModLoad: 00000000`75020000 00000000`75065000   POWRPROF.dll
ModLoad: 00000000`76500000 00000000`76508000   FLTLIB.DLL
ModLoad: 00000000`74e30000 00000000`74ec6000   OLEAUT32.dll
ModLoad: 00000000`75df0000 00000000`75eec000   ole32.dll
ModLoad: 00000000`74ed0000 00000000`74fa6000   COMDLG32.dll
ModLoad: 00000000`75d70000 00000000`75d89000   imagehlp.dll
ModLoad: 00000000`76850000 00000000`76876000   IMM32.dll
ModLoad: 00000000`74fb0000 00000000`74fb6000   PSAPI.DLL
ModLoad: 00000000`71de0000 00000000`71e04000   WINMM.dll
ModLoad: 00000000`6ccc0000 00000000`6cec4000   COMCTL32.dll
ModLoad: 00000000`728f0000 00000000`728f8000   VERSION.dll
ModLoad: 00000000`721a0000 00000000`7220d000   WINSPOOL.DRV
ModLoad: 00000000`71e10000 00000000`71eb3000   MSVCR90.dll
ModLoad: 00000000`71ec0000 00000000`71f4e000   MSVCP90.dll
ModLoad: 00000000`71f50000 00000000`720bb000   gdiplus.dll
ModLoad: 00000000`71530000 00000000`71560000   IPHLPAPI.DLL
ModLoad: 00000000`71500000 00000000`71523000   WINMMBASE.dll
ModLoad: 00000000`71560000 00000000`716e0000   PROPSYS.dll
ModLoad: 00000000`72af0000 00000000`72b09000   bcrypt.dll
ModLoad: 00000000`10000000 00000000`100b1000   mgcore_SH_13_0.dll
ModLoad: 00000000`03020000 00000000`03041000   niCPULib.dll
ModLoad: 00000000`04d70000 00000000`05012000   dfir_13_0.dll
ModLoad: 00000000`05120000 00000000`0524e000   tdcore_13_0.dll
ModLoad: 00000000`72be0000 00000000`72d62000   dbghelp.dll
ModLoad: 00000000`72bb0000 00000000`72bd5000   dbgcore.dll
ModLoad: 00000000`72120000 00000000`7219c000   UxTheme.dll
ModLoad: 00000000`75260000 00000000`753a3000   MSCTF.dll
ModLoad: 00000000`76af0000 00000000`76b73000   CLBCatQ.DLL
ModLoad: 00000000`6b010000 00000000`6b410000   EXPLORERFRAME.dll
ModLoad: 00000000`058e0000 00000000`058ec000   QtManager452_2013.dll
ModLoad: 00000000`67000000 00000000`67221000   NIQtCore_2013.dll
ModLoad: 00000000`65000000 00000000`657b3000   NIQtGui_2013.dll
ModLoad: 00000000`6c9e0000 00000000`6ca03000   dwmapi.dll
ModLoad: 00000000`05ec0000 00000000`06023000   nilmClient.dll
ModLoad: 00000000`753b0000 00000000`757db000   SETUPAPI.dll
ModLoad: 00000000`12000000 00000000`12241000   xerces-c_2_6.dll
ModLoad: 00000000`7c3c0000 00000000`7c43c000   MSVCP71.dll
ModLoad: 00000000`6ca50000 00000000`6ca63000   NETAPI32.dll
ModLoad: 00000000`7c360000 00000000`7c3b6000   MSVCR71.dll
ModLoad: 00000000`06030000 00000000`06074000   xerces-depdom_2_6.dll
ModLoad: 00000000`72b30000 00000000`72b43000   CRYPTSP.dll
ModLoad: 00000000`72ac0000 00000000`72aef000   RSAENH.dll
ModLoad: 00000000`75de0000 00000000`75de7000   NSI.dll 
ModLoad: 00000000`53400000 00000000`53403000   icmp.dll
ModLoad: 00000000`6c9c0000 00000000`6c9d1000   NAPINSP.dll
ModLoad: 00000000`6c9a0000 00000000`6c9b6000   PNRPNSP.dll
ModLoad: 00000000`6c980000 00000000`6c993000   nlaapi.dll
ModLoad: 00000000`72b50000 00000000`72ba6000   MSWSOCK.dll
ModLoad: 00000000`6d2f0000 00000000`6d37e000   DNSAPI.dll
ModLoad: 00000000`6c970000 00000000`6c97c000   WINRNR.dll
ModLoad: 00000000`6d380000 00000000`6d3cf000   fwpuclnt.dll
ModLoad: 00000000`6c960000 00000000`6c968000   rasadhlp.dll
ModLoad: 00000000`69570000 00000000`69576000   InjectionDll.dll
ModLoad: 00000000`061e0000 00000000`061e6000   nilmWizard.dll
ModLoad: 00000000`28000000 00000000`28030000   nicont.DLL
ModLoad: 00000000`76a00000 00000000`76a60000   coml2.dll
ModLoad: 00000000`65e90000 00000000`65f1e000   mscms.dll
ModLoad: 00000000`72a90000 00000000`72ab1000   USERENV.dll
ModLoad: 00000000`68b20000 00000000`68b2c000   ColorAdapterClient.dll
ModLoad: 00000000`65e50000 00000000`65e8e000   ICM32.dll
ModLoad: 00000000`09840000 00000000`098dd000   nitaglv.dll
ModLoad: 00000000`098e0000 00000000`0995d000   LKSOCK.dll
ModLoad: 00000000`09960000 00000000`09989000   LKSEC.dll
ModLoad: 00000000`09990000 00000000`099c9000   LKBROW.dll
ModLoad: 00000000`099d0000 00000000`09a0a000   LKDYNAM.dll
ModLoad: 00000000`09a40000 00000000`09a9a000   LKREALT.dll
ModLoad: 00000000`38130000 00000000`3817d000   nilvicv_hostdeploy.dll
ModLoad: 00000000`28400000 00000000`2844c000   NICONTDT.DLL
ModLoad: 00000000`456e0000 00000000`4575e000   RICHED20.dll
ModLoad: 00000000`692a0000 00000000`692b7000   USP10.dll
ModLoad: 00000000`0f330000 00000000`0f362000   msls31.dll
ModLoad: 00000000`63800000 00000000`63813000   NiSpyLog.dll
ModLoad: 00000000`0af80000 00000000`0afe3000   CallistoLV.dll
ModLoad: 00000000`0b000000 00000000`0b07d000   lvdaq.mxx
ModLoad: 00000000`6d280000 00000000`6d2b5000   nimdbgu.dll
ModLoad: 00000000`6e0c0000 00000000`6e0df000   nimercu.dll
ModLoad: 00000000`6db40000 00000000`6df26000   nidmxfu.dll
ModLoad: 00000000`6df50000 00000000`6e07b000   nilvaiu.dll
ModLoad: 00000000`6c3f0000 00000000`6c78d000   mfc90.dll
ModLoad: 00000000`6d000000 00000000`6d01c000   niorbu.dll
ModLoad: 00000000`6d0f0000 00000000`6d139000   nimxdfu.dll
ModLoad: 00000000`6e2c0000 00000000`6e2dc000   nimstsu.dll
ModLoad: 00000000`64580000 00000000`645e7000   NIPALU.dll
ModLoad: 00000000`6e0e0000 00000000`6e1c7000   nimhwcfu.dll
ModLoad: 00000000`6ec70000 00000000`6ecb8000   nimru2u.dll
ModLoad: 00000000`72290000 00000000`72296000   MSIMG32.dll
ModLoad: 00000000`64600000 00000000`64618000   nirpc.dll
ModLoad: 00000000`64500000 00000000`64506000   nipalut.dll
ModLoad: 00000000`1f700000 00000000`1f708000   NIPAL32.dll
ModLoad: 00000000`63550000 00000000`6355b000   nimdnsResponder.dll
ModLoad: 00000000`6d050000 00000000`6d07a000   nidimu.dll
ModLoad: 00000000`72e90000 00000000`73295000   WININET.dll
ModLoad: 00000000`6c100000 00000000`6c1b0000   WINHTTP.dll
ModLoad: 00000000`0b680000 00000000`0b6b0000   nicrtsiu.dll
ModLoad: 00000000`0b6b0000 00000000`0b6b9000   niprtsiu.dll
ModLoad: 00000000`5d360000 00000000`5d36d000   image00000000`5d360000
ModLoad: 00000000`36000000 00000000`360aa000   lvdesktop.mxx
ModLoad: 00000000`39800000 00000000`3989d000   lvelemio.mxx
ModLoad: 00000000`39900000 00000000`39a51000   lvfpga.mxx
ModLoad: 00000000`36500000 00000000`36511000   LvProjectProxy.mxx
ModLoad: 00000000`07b50000 00000000`07bbf000   LvRealTimeCoreProvider.mxx
ModLoad: 00000000`07bd0000 00000000`07bdd000   SystemStateClient.dll
ModLoad: 00000000`07be0000 00000000`07c0d000   lvRemoteWindows.mxx
ModLoad: 00000000`07c30000 00000000`07c8b000   lvrt_cvs.mxx
ModLoad: 00000000`07cb0000 00000000`07d0d000   lvrt_evs.mxx
ModLoad: 00000000`07d30000 00000000`07d8c000   lvrt_smartcamera.mxx
ModLoad: 00000000`07db0000 00000000`07e32000   LvTargetCoreProvider.mxx
ModLoad: 00000000`36700000 00000000`3678d000   MVEProvider.mxx
ModLoad: 00000000`61000000 00000000`61060000   NIQtXml_2013.dll
ModLoad: 00000000`36800000 00000000`36877000   mxLvProvider.mxx
ModLoad: 00000000`12c00000 00000000`12c1f000   mxwProjectProvider.mxx
ModLoad: 00000000`78230000 00000000`782ef000   MSVCR100.dll
ModLoad: 00000000`774c0000 00000000`77529000   MSVCP100.dll
ModLoad: 00000000`12f40000 00000000`13339000   mxwTask.dll
ModLoad: 00000000`78970000 00000000`78996000   ATL100.DLL
ModLoad: 00000000`11280000 00000000`114f9000   mxwRCENU.dll
ModLoad: 00000000`0bab0000 00000000`0bad8000   nimxlcpp.mxx
ModLoad: 00000000`6a7a0000 00000000`6a7b5000   nimxlc.dll
ModLoad: 00000000`36100000 00000000`36191000   variable.mxx
ModLoad: 00000000`0bcb0000 00000000`0bd5d000   ws_project_provider.mxx
ModLoad: 00000000`0bd60000 00000000`0bdd2000   lvMax.dll
ModLoad: 00000000`0bde0000 00000000`0be4f000   nidp_host_end.dll
ModLoad: 00000000`39b00000 00000000`39b78000   lvfpga_runt.dll
ModLoad: 00000000`1bfa0000 00000000`1bfc9000   nimaximp.dll
ModLoad: 00000000`0c0f0000 00000000`0c147000   nierInterface.dll
ModLoad: 00000000`0c170000 00000000`0c18a000   ni_traceengine.dll
ModLoad: 00000000`0de30000 00000000`0df5a000   lvanlys.dll
ModLoad: 00000000`0ea60000 00000000`0f16c000   LV130000_BLASLAPACK.dll
ModLoad: 00000000`0cd30000 00000000`0cd64000   niceipcore.dll
ModLoad: 00000000`69100000 00000000`6914f000   DataExchange.dll
ModLoad: 00000000`68ea0000 00000000`690f2000   d3d11.dll
ModLoad: 00000000`68d60000 00000000`68e9c000   dcomp.dll
ModLoad: 00000000`68cc0000 00000000`68d58000   dxgi.dll
ModLoad: 00000000`68b50000 00000000`68cb5000   twinapi.appcore.dll
ModLoad: 00000000`68b30000 00000000`68b4a000   RMCLIENT.dll
ModLoad: 00000000`12a50000 00000000`12b32000   mesa.dll
ModLoad: 00000000`68510000 00000000`6858d000   TextInputFramework.dll
ModLoad: 00000000`67e20000 00000000`67eab000   CoreMessaging.dll
ModLoad: 00000000`17d50000 00000000`17fad000   CoreUIComponents.dll
ModLoad: 00000000`6c1d0000 00000000`6c1f9000   NTMARTA.dll
ModLoad: 00000000`6b560000 00000000`6b636000   WinTypes.dll
ModLoad: 00000000`02b60000 00000000`02b6e000   imt-wrapper.dll
ModLoad: 00000000`02c60000 00000000`02c7b000   VCRUNTIME140D.dll
ModLoad: 00000000`187b0000 00000000`18924000   ucrtbased.dll
ModLoad: 00000000`02c80000 00000000`02c8f000   imt.dll 
(da80.6a6c): Break instruction exception - code 80000003 (first chance)
ntdll!DbgBreakPoint:
00007ffe`9f9fd8d0 cc              int     3
0:025> !gle
LastErrorValue: (Win32) 0 (0) - The operation completed successfully.
LastStatusValue: (NTSTATUS) 0 - STATUS_SUCCESS
Wow64 TEB status: 3702784
LastErrorValue: (Win32) 0 (0) - The operation completed successfully.
LastStatusValue: (NTSTATUS) 0 - STATUS_SUCCESS
0:025> .exr -1
ExceptionAddress: 00007ffe9f9fd8d0 (ntdll!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 0000000000000000
0:025> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files (x86)\National Instruments\LabVIEW 2013\LabVIEW.exe - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for mgcore_SH_13_0.dll - 
GetUrlPageData2 (WinHttp) failed: 12007.

KEY_VALUES_STRING: 1


STACKHASH_ANALYSIS: 1

TIMELINE_ANALYSIS: 1

Timeline: !analyze.Start
    Name: <blank>
    Time: 2019-01-29T19:59:00.700Z
    Diff: 700 mSec

Timeline: Dump.Current
    Name: <blank>
    Time: 2019-01-29T19:59:00.0Z
    Diff: 0 mSec

Timeline: Process.Start
    Name: <blank>
    Time: 2019-01-29T19:50:02.0Z
    Diff: 538000 mSec

Timeline: OS.Boot
    Name: <blank>
    Time: 2019-01-29T03:10:58.0Z
    Diff: 60482000 mSec


DUMP_CLASS: 2

DUMP_QUALIFIER: 0

FAULTING_IP: 
ntdll!DbgBreakPoint+0
00007ffe`9f9fd8d0 cc              int     3

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ffe9f9fd8d0 (ntdll!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 0000000000000000

FAULTING_THREAD:  00006a6c

BUGCHECK_STR:  BREAKPOINT

DEFAULT_BUCKET_ID:  BREAKPOINT

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

EXCEPTION_CODE_STR:  80000003

EXCEPTION_PARAMETER1:  0000000000000000

WATSON_BKT_PROCSTAMP:  533c6210

WATSON_BKT_PROCVER:  13.0.1.4020

PROCESS_VER_PRODUCT:  National Instruments LabVIEW

WATSON_BKT_MODULE:  ntdll.dll

WATSON_BKT_MODSTAMP:  60d78cf9

WATSON_BKT_MODOFFSET:  9d8d0

WATSON_BKT_MODVER:  10.0.17134.376

MODULE_VER_PRODUCT:  Microsoft® Windows® Operating System

BUILD_VERSION_STRING:  17134.1.amd64fre.rs4_release.180410-1804

MODLIST_WITH_TSCHKSUM_HASH:  f200853ba633a847c8d03a15d7c62a09fff6b561

MODLIST_SHA1_HASH:  5529edf10d24079311335b0c868559c736add5c7

NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

APPLICATION_VERIFIER_FLAGS:  0

PRODUCT_TYPE:  1

SUITE_MASK:  272

DUMP_TYPE:  fe

PROCESS_NAME:  unknown

ANALYSIS_SESSION_HOST:  JEREMY-PC

ANALYSIS_SESSION_TIME:  01-29-2019 14:59:00.0700

ANALYSIS_VERSION: 10.0.17763.1 amd64fre

THREAD_ATTRIBUTES: 
OS_LOCALE:  ENU

PRIMARY_PROBLEM_CLASS:  BREAKPOINT

PROBLEM_CLASSES: 

    ID:     [0n321]
    Type:   [@APPLICATION_FAULT_STRING]
    Class:  Primary
    Scope:  DEFAULT_BUCKET_ID (Failure Bucket ID prefix)
            BUCKET_ID
    Name:   Omit
    Data:   Add
            String: [BREAKPOINT]
    PID:    [Unspecified]
    TID:    [Unspecified]
    Frame:  [0]

STACK_TEXT:  
00000000`02bdfc78 00007ffe`9fa29a4b : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!DbgBreakPoint
00000000`02bdfc80 00007ffe`9f9d147f : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!DbgUiRemoteBreakin+0x4b
00000000`02bdfcb0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x2f


THREAD_SHA1_HASH_MOD_FUNC:  7022ac660180cc117dbba4701e87bc997be1e021

THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  8612d4bd97ca375e13535eeed5263302dc2a124c

THREAD_SHA1_HASH_MOD:  ec3b5fdb1c6f649ec34d8fd34d70509a58a63226

FOLLOWUP_IP: 
ntdll!DbgBreakPoint+0
00007ffe`9f9fd8d0 cc              int     3

FAULT_INSTR_CODE:  ccccc3cc

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  ntdll!DbgBreakPoint+0

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ntdll

IMAGE_NAME:  ntdll.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  60d78cf9

STACK_COMMAND:  ~25s ; .cxr ; kb

BUCKET_ID:  MANUAL_BREAKIN

FAILURE_EXCEPTION_CODE:  80000003

FAILURE_IMAGE_NAME:  ntdll.dll

BUCKET_ID_IMAGE_STR:  ntdll.dll

FAILURE_MODULE_NAME:  ntdll

BUCKET_ID_MODULE_STR:  ntdll

FAILURE_FUNCTION_NAME:  DbgBreakPoint

BUCKET_ID_FUNCTION_STR:  DbgBreakPoint

BUCKET_ID_OFFSET:  0

BUCKET_ID_MODTIMEDATESTAMP:  60d78cf9

BUCKET_ID_MODCHECKSUM:  1df93f

BUCKET_ID_MODVER_STR:  10.0.17134.376

BUCKET_ID_PREFIX_STR:  MANUAL_BREAKIN

FAILURE_PROBLEM_CLASS:  BREAKPOINT

FAILURE_SYMBOL_NAME:  ntdll.dll!DbgBreakPoint

FAILURE_BUCKET_ID:  BREAKPOINT_80000003_ntdll.dll!DbgBreakPoint

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/unknown/13.0.1.4020/533c6210/ntdll.dll/10.0.17134.376/60d78cf9/80000003/0009d8d0.htm?Retriage=1

TARGET_TIME:  2019-01-29T19:59:05.000Z

OSBUILD:  17134

OSSERVICEPACK:  1

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

OSEDITION:  Windows 10 WinNt SingleUserTS

USER_LCID:  0

OSBUILD_TIMESTAMP:  unknown_date

BUILDDATESTAMP_STR:  180410-1804

BUILDLAB_STR:  rs4_release

BUILDOSVER_STR:  10.0.17134.1.amd64fre.rs4_release.180410-1804

ANALYSIS_SESSION_ELAPSED_TIME:  1363

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:breakpoint_80000003_ntdll.dll!dbgbreakpoint

FAILURE_ID_HASH:  {1d20f983-583a-5d58-a854-5c812a87c587}

Followup:     MachineOwner
---------

In particular, the following segments are relevant:

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

---

ModLoad: 00000000`02b60000 00000000`02b6e000   imt-wrapper.dll
ModLoad: 00000000`02c60000 00000000`02c7b000   VCRUNTIME140D.dll
ModLoad: 00000000`187b0000 00000000`18924000   ucrtbased.dll
ModLoad: 00000000`02c80000 00000000`02c8f000   imt.dll 
(da80.6a6c): Break instruction exception - code 80000003 (first chance)
ntdll!DbgBreakPoint:
00007ffe`9f9fd8d0 cc              int     3



imt-wrapper is the wrapper around the main dll, imt.dll.

 

Here's the main .cpp file for imt-wrapper.dll. Can provide full project files to build if need be, but it's pretty much the same code everyone else uses out on StackOverflow and otherwise.

// imt-wrapper-dll.cpp : Defines the entry point for the application.
//

#include <windows.h>
#include <string>
#include "imt-wrapper-dll.h"

const LPCSTR dll_path = "C:\\Users\\Jeremy\\Desktop\\LV_devel\\imt-c-controller\\win64\\lib\\Debug\\imt.dll";

/* Define a function pointer for our imported
 * function.
 * This reads as "introduce the new type f_funci as the type:
 *                pointer to a function returning an int and
 *                taking no arguments.
 *
 * Make sure to use matching calling convention (__cdecl, __stdcall, ...)
 * with the exported function. __stdcall is the convention used by the WinAPI
 */
typedef int(__cdecl *ctx_check_t)(const void *);

// could be templated in the future
__declspec(dllexport) int __cdecl LV_check_context(const void *ctx_ext)
{
	HINSTANCE hGetProcIDDLL = LoadLibrary(dll_path);

	if (!hGetProcIDDLL) {
		return -100;
	}

	// resolve function address here
	ctx_check_t ctx_check = (ctx_check_t)GetProcAddress(hGetProcIDDLL, "imt_check_context");
	BOOL fResult = FreeLibrary(hGetProcIDDLL);
	if (!fResult) {
		return -101;
	}
	if (!ctx_check) {
		return -102;
	}

	return ctx_check(ctx_ext);
}

All the header file has is the extern declaration for `LV_check_context`.

 

If it helps, both dll's are built with CMake 3.8, Visual Studio 2017 Community Edition, on a Debug release configuration.

0 Kudos
Message 1 of 1
(5,545 Views)