Dizeyi #define str "long long string " olarak veya hatta + veya bir string işlevi aracılığıyla iki dize olarak kaydırmaya çalışmak yerine.
Sonuçta Yorum satırın uzunluğunda da sınırlıdır, ancak o kadar çok değişken koyabilirsiniz ki monitöre sığmaz birkaç satırda.
Teşekkürler, kısaltma gerçekten işe yarıyor, derleyici gerçekten anlıyor, ancak @ ile dekore edilmiş işlevleri (sanırım buna denir) kabul etmiyor. Ve eski derleyici bu tür işlevleri kabul eder, ancak tam anlamıyla alarak içe aktarmak için ikame eklemez. İşlevleri dll belgelerindeki gibi içe aktarırsanız, yani. "TRANS2QUIK_CONNECT" ve " _TRANS2QUIK_CONNECT@16" değil, 2(TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND) döndürür. Ne farkı var anlamadım.
f1nik : Teşekkürler, azaltma gerçekten işe yarıyor, derleyici gerçekten anlıyor, ancak @ ile dekore edilmiş işlevleri (sanırım buna öyle diyorlar) kabul etmiyor. Ve eski derleyici bu tür işlevleri kabul eder, ancak tam anlamıyla alarak içe aktarmak için ikame eklemez. İşlevleri dll belgelerindeki gibi içe aktarırsanız, yani. "TRANS2QUIK_CONNECT" ve " _TRANS2QUIK_CONNECT@16" değil, 2(TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND) döndürür. Ne farkı var anlamadım.
Dll dosyasını bir hex düzenleyicide açın , biraz inceleyin ve giriş noktalarının adlarını sembolik olarak görün. Veya bunu sizin için yapacak bir tür dll Explorer bulun, aynı zamanda bağımlılıkları da gösterecektir.
Bu arada, işe yarayacağı bir gerçek değil, eğer giriş noktaları stdcall değilse, conta olmadan yapamazsınız.
f1nik : Teşekkürler, azaltma gerçekten işe yarıyor, derleyici gerçekten anlıyor, ancak @ ile dekore edilmiş işlevleri (sanırım buna öyle diyorlar) kabul etmiyor. Ve eski derleyici bu tür işlevleri kabul eder, ancak tam anlamıyla alarak içe aktarmak için ikame eklemez. İşlevleri dll belgelerindeki gibi içe aktarırsanız, yani. "TRANS2QUIK_CONNECT" ve " _TRANS2QUIK_CONNECT@16" değil, 2(TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND) döndürür. Ne farkı var anlamadım.
Bununla ilgili belgelerde nerede yazıyor bilmiyorum ama dizedeki özel karakterden önce bir eğik çizgi olmalı. Bu nedenle, örneğin adres dizesi şöyle görünmelidir: С:\\klasör\\dosya
Yani şöyle yazmayı deneyin: " _TRANS2QUIK_CONNECT\@16"
Genel olarak, .dll ile arkadaş değilim. Bu işe yaramazsa, o zaman...
@Maxim Kuznetsov dll'yi WinHex ve Dependency Walker'da açtı, Sıralama, İpucu, İşlev, Giriş Noktası veriyor ve ( _TRANS2QUIK_CONNECT@16) gibi işlevlerin adlarını veren oydu. eski derleyici onlarla birlikte çalışır ve sonuç dll'sini geri verir. Bu sembolik isimlerden mi bahsediyorsunuz?
@Alexey Viktorov Ben kendim programlamada bir meslekten değilim, ancak daha önce fikirlerimi yapmak için mütevazı bir bilgi yeterliydi. Kaçış \\ başarısız olur.
Python'da otomatik bir proxy dll oluşturucu bulundu https://github.com/mavenlin/Dll_Wrapper_Gen . Aslında benim için birleştirilmiş dll'deki sadece fonksiyonların isimlerini değiştirmenin uygun olduğunu düşündüm. Değişiklik yapmadan derlemeye çalıştım, derleyici işlev adlarında @'ye yemin ediyor. Oluşturulan cpp parçası
_TRANS2QUIK_CONNECT@16_wrapper'ın proxy dll'sinden görünecek işlevlerin adı olduğunu anlıyorum. Bu nedenle,CONNECT olarak kısalttım. Dll oluşturuldu ancak terminalTRANS2QUIK_QUIK_TERMINAL_NOT_FOUND gösteriyor. Beynime uymuyor gibi. Ticaret sistemini manuel olarak kontrol etmeniz ve ardından dll'yi sipariş etmeniz gerekecektir.
@Maxim Kuznetsov dll'yi WinHex ve Dependency Walker'da açtı, Sıralama, İpucu, İşlev, Giriş Noktası veriyor ve ( _TRANS2QUIK_CONNECT@16) gibi işlevlerin adlarını veren oydu. eski derleyici onlarla birlikte çalışır ve sonuç dll'sini geri verir. Bu sembolik isimlerden mi bahsediyorsunuz?
@Alexey Viktorov Ben kendim programlamada bir meslekten değilim, ancak daha önce fikirlerimi yapmak için mütevazı bir bilgi yeterliydi. Kaçış \\ başarısız olur.
Python'da otomatik bir proxy dll oluşturucu bulundu https://github.com/mavenlin/Dll_Wrapper_Gen . Aslında benim için birleştirilmiş dll'deki sadece fonksiyonların isimlerini değiştirmenin uygun olduğunu düşündüm. Görsel stüdyo için bir proje yaptı. Değişiklik yapmadan derlemeye çalıştım, derleyici işlev adlarında @'ye yemin ediyor. Oluşturulan cpp parçası
Oluşturulan def dosyasının parçası
_TRANS2QUIK_CONNECT@16_wrapper'ın proxy dll'sinden görünecek işlevlerin adı olduğunu anlıyorum. Bu nedenle,CONNECT olarak kısalttım. Dll oluşturuldu ancak terminalTRANS2QUIK_QUIK_TERMINAL_NOT_FOUND gösteriyor. Beynime uymuyor gibi. Ticaret sistemini manuel olarak kontrol etmeniz ve ardından dll'yi sipariş etmeniz gerekecektir.
Bunca zamandır terminalin ve DLL'nin bit derinliği hakkında tek kelime etmediniz. Ve önemli mi?
@Koldun Zloy Trans2QuikAPI_1.2'yi denedi , mt4 ve quik 7 ile 32 bit ve ayrıca mt5 ve quik 8 ile Trans2QuikAPI_1.3_x64, sadece 64 bit gibi. Hızlı olarak, harici işlemleri etkinleştirdim. İşlevi doğru şekilde içe aktarmadığımı düşündüm. kendim yazdım
int _TRANS2QUIK_CONNECT@ 16 ( string lpcstrConnectionParamsString, int & pnExtendedErrorCode[], string lpstrErrorMessage, int dwErrorMessageSize);
В новом компиляторе mt4 можно только так
int _TRANS2QUIK_CONNECT( string lpcstrConnectionParamsString, int & pnExtendedErrorCode[], string lpstrErrorMessage, int dwErrorMessageSize);
В h файле который есть в архиве с dll написано так long TRANS2QUIK_API __stdcall TRANS2QUIK_CONNECT (LPSTR
lpstConnectionParamsString,long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize);
Eşdeğer veri türleri gibi. Sonuçta, doğru olmasaydı, bence öyle, eski derleyici ile çalışmayacaktı.
Genelde dll'yi bağladığı ortaya çıktı. Önce dekore edilmiş bir işlevi ( _TRANS2QUIK_CONNECT@16 ) çağırırsanız, en az iki dekore edilmemiş işlev çalışır. Cevap veren herkese teşekkürler.
MT5'te test hızı programlı olarak nasıl kontrol edilir? Kılavuz, test cihazında Sleep() 'in kullanılmaması gerektiğini açıkça belirtmiyor, ancak işe yaramıyor gibi görünüyor... Belirli bir anda test hızının düşmesi gerekir. Tüm o anları elle yakalamak zor...
Merhaba! MQL5'te arka plan ve butonlardan oluşan bir panel oluşturdum . Panel sürüklenirken sadece arka plan hareket eder, butonlar yerinde kalır ve sadece bir sonraki tıklamada butonlar arka planın arkasından doğru yere hareket eder. Lütfen bana düğmelerin ve arka planın aynı anda nasıl hareket ettirileceğini söyle. Şimdiden teşekkür ederim!
Mikhail : Merhaba! MQL5'te arka plan ve butonlardan oluşan bir panel oluşturdum. Panel sürüklenirken sadece arka plan hareket eder, butonlar yerinde kalır ve sadece bir sonraki tıklamada butonlar arka planın arkasından doğru yere hareket eder. Lütfen bana düğmelerin ve arka planın aynı anda nasıl hareket ettirileceğini söyle. Şimdiden teşekkür ederim!
Bir test cihazından mı bahsediyorsunuz yoksa çevrimiçi mi?
çevrimiçiyse - move olayının normal şekilde iletilmediği koda bakın. Bu arada sitede sadece beş farklı kütüphane var, neden bahsediyorsunuz?
Ve test cihazında - hiçbir şekilde görünmüyor ve neden.
Dizeyi #define str "long long string " olarak veya hatta + veya bir string işlevi aracılığıyla iki dize olarak kaydırmaya çalışmak yerine.
Sonuçta Yorum satırın uzunluğunda da sınırlıdır, ancak o kadar çok değişken koyabilirsiniz ki monitöre sığmaz birkaç satırda.
Teşekkürler, azaltma gerçekten işe yarıyor, derleyici gerçekten anlıyor, ancak @ ile dekore edilmiş işlevleri (sanırım buna öyle diyorlar) kabul etmiyor. Ve eski derleyici bu tür işlevleri kabul eder, ancak tam anlamıyla alarak içe aktarmak için ikame eklemez. İşlevleri dll belgelerindeki gibi içe aktarırsanız, yani. "TRANS2QUIK_CONNECT" ve " _TRANS2QUIK_CONNECT@16" değil, 2(TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND) döndürür. Ne farkı var anlamadım.
Teşekkürler, azaltma gerçekten işe yarıyor, derleyici gerçekten anlıyor, ancak @ ile dekore edilmiş işlevleri (sanırım buna öyle diyorlar) kabul etmiyor. Ve eski derleyici bu tür işlevleri kabul eder, ancak tam anlamıyla alarak içe aktarmak için ikame eklemez. İşlevleri dll belgelerindeki gibi içe aktarırsanız, yani. "TRANS2QUIK_CONNECT" ve " _TRANS2QUIK_CONNECT@16" değil, 2(TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND) döndürür. Ne farkı var anlamadım.
Bununla ilgili belgelerde nerede yazıyor bilmiyorum ama dizedeki özel karakterden önce bir eğik çizgi olmalı. Bu nedenle, örneğin adres dizesi şöyle görünmelidir: С:\\klasör\\dosya
Yani şöyle yazmayı deneyin: " _TRANS2QUIK_CONNECT\@16"
Genel olarak, .dll ile arkadaş değilim. Bu işe yaramazsa, o zaman...
@Maxim Kuznetsov dll'yi WinHex ve Dependency Walker'da açtı, Sıralama, İpucu, İşlev, Giriş Noktası veriyor ve ( _TRANS2QUIK_CONNECT@16) gibi işlevlerin adlarını veren oydu. eski derleyici onlarla birlikte çalışır ve sonuç dll'sini geri verir. Bu sembolik isimlerden mi bahsediyorsunuz?
@Alexey Viktorov Ben kendim programlamada bir meslekten değilim, ancak daha önce fikirlerimi yapmak için mütevazı bir bilgi yeterliydi. Kaçış \\ başarısız olur.
Python'da otomatik bir proxy dll oluşturucu bulundu https://github.com/mavenlin/Dll_Wrapper_Gen . Aslında benim için birleştirilmiş dll'deki sadece fonksiyonların isimlerini değiştirmenin uygun olduğunu düşündüm. Değişiklik yapmadan derlemeye çalıştım, derleyici işlev adlarında @'ye yemin ediyor. Oluşturulan cpp parçası
Oluşturulan def dosyasının parçası
_TRANS2QUIK_CONNECT@ 16 _wrapper'ın proxy dll'sinden görünecek işlevlerin adı olduğunu anlıyorum. Bu nedenle, CONNECT olarak kısalttım. Dll oluşturuldu ancak terminal TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND gösteriyor. Beynime uymuyor gibi. Ticaret sistemini manuel olarak kontrol etmeniz ve ardından dll'yi sipariş etmeniz gerekecektir.
@Maxim Kuznetsov dll'yi WinHex ve Dependency Walker'da açtı, Sıralama, İpucu, İşlev, Giriş Noktası veriyor ve ( _TRANS2QUIK_CONNECT@16) gibi işlevlerin adlarını veren oydu. eski derleyici onlarla birlikte çalışır ve sonuç dll'sini geri verir. Bu sembolik isimlerden mi bahsediyorsunuz?
@Alexey Viktorov Ben kendim programlamada bir meslekten değilim, ancak daha önce fikirlerimi yapmak için mütevazı bir bilgi yeterliydi. Kaçış \\ başarısız olur.
Python'da otomatik bir proxy dll oluşturucu bulundu https://github.com/mavenlin/Dll_Wrapper_Gen . Aslında benim için birleştirilmiş dll'deki sadece fonksiyonların isimlerini değiştirmenin uygun olduğunu düşündüm. Görsel stüdyo için bir proje yaptı. Değişiklik yapmadan derlemeye çalıştım, derleyici işlev adlarında @'ye yemin ediyor. Oluşturulan cpp parçası
Oluşturulan def dosyasının parçası
_TRANS2QUIK_CONNECT@ 16 _wrapper'ın proxy dll'sinden görünecek işlevlerin adı olduğunu anlıyorum. Bu nedenle, CONNECT olarak kısalttım. Dll oluşturuldu ancak terminal TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND gösteriyor. Beynime uymuyor gibi. Ticaret sistemini manuel olarak kontrol etmeniz ve ardından dll'yi sipariş etmeniz gerekecektir.
Bunca zamandır terminalin ve DLL'nin bit derinliği hakkında tek kelime etmediniz. Ve önemli mi?
@Koldun Zloy Trans2QuikAPI_1.2'yi denedi , mt4 ve quik 7 ile 32 bit ve ayrıca mt5 ve quik 8 ile Trans2QuikAPI_1.3_x64, sadece 64 bit gibi. Hızlı olarak, harici işlemleri etkinleştirdim. İşlevi doğru şekilde içe aktarmadığımı düşündüm. kendim yazdım
Eşdeğer veri türleri gibi. Sonuçta, doğru olmasaydı, bence öyle, eski derleyici ile çalışmayacaktı.
Belirli bir anda test hızının düşmesi gerekir. Tüm o anları elle yakalamak zor...
Merhaba! MQL5'te arka plan ve butonlardan oluşan bir panel oluşturdum. Panel sürüklenirken sadece arka plan hareket eder, butonlar yerinde kalır ve sadece bir sonraki tıklamada butonlar arka planın arkasından doğru yere hareket eder. Lütfen bana düğmelerin ve arka planın aynı anda nasıl hareket ettirileceğini söyle. Şimdiden teşekkür ederim!
Bir test cihazından mı bahsediyorsunuz yoksa çevrimiçi mi?
çevrimiçiyse - move olayının normal şekilde iletilmediği koda bakın. Bu arada sitede sadece beş farklı kütüphane var, neden bahsediyorsunuz?
Ve test cihazında - hiçbir şekilde görünmüyor ve neden.